入坑IT都快十年了

简介: 一起帮的开发直播已经告一段落:一是主体的功能差不多都实现了,二是用到的架构技术都展示得差不多了。以后就算继续开发,也应该都是一些“技术上”重复的工作而已。整个直播过程耗时近半年,SVN提交1062次,视频录像60.5G,涉及到一个项目开发的方方面面,想来还真是有那么一点小小的成就感。

一起帮的开发直播已经告一段落:一是主体的功能差不多都实现了,二是用到的架构技术都展示得差不多了。以后就算继续开发,也应该都是一些“技术上”重复的工作而已。整个直播过程耗时近半年,SVN提交1062次,视频录像60.5G,涉及到一个项目开发的方方面面,想来还真是有那么一点小小的成就感。

从包工头到程序猿,一晃就是快十年了。

想想我当初“三个月学会编程”的计划,不觉莞尔。计划从三个月变成一年,又从一年改到三年,再然后从三年到十年……我就这样磨磨蹭蹭的一路走了过来?

回过头来看看,有没有什么弯路?是不是耗时太长?有没有什么心得体会?

其实心里有点乱。

可能也捋不出个一二三,就想到哪儿说到哪儿吧。

 

一起帮的所有功能,我捋了一下,其实也没什么复杂的。仅从功能来看,五年前,甚至七年前,我都应该能够做出来了吧?那我这些年,究竟在干嘛呢?

所以有一个非常流行的问题:“程序员三十/三十五(以及五年后的四十?O(∩_∩)O~)岁之后在干嘛?”或者,换言之,“程序员是不是只能吃‘青春饭’?”因为,做了一段时间之后,你就会非常悲催的发现,好像每天都在重复劳动,干的都是体力活,技术上的提高非常有限……

有上面这种想法的人,其实还是比较幸运,不,只能说比较舒服的,因为他们多半是在一些比较稳定的单位/职位上,使用比较成熟的技术,所以才会有这种感觉。而另外一些更悲催的同学,可能一年到头都在学习各种新技术,他们追得更累,他们的疑问大概应该是:“十年之后究竟还有多少技术是有用的?”

 

这些问题,确实不怎么好问答。

先说技术的更新换代吧。

  • 我最早进公司的时候,人家的老代码还是ASP,Html和VBScript混在一起,眼睛都要开花了的那种,真真不堪回首……
  • 还好很快就升级成ASP.NET 2.0 WebForm,控件开发,页面和后台分离,那一个爽啊;那时候以PetShop为范本,“三层架构”满天飞;是用DataReader还是DataSet吵得不可开交……
  • 安生日子还没过几天,Ajax来了,“富客户端”和“富服务器”端吵得天昏地暗,最后还是富客户端赢了,WebForm式微,迎来了ASP.NET MVC;数据库操作早就换成了Linq to SQL,虽然还有不少人言之凿凿的说Linq性能不行……
  • 这MVC一出来,感觉又回到了ASP时代一样,View上面乱得一塌糊涂,但灵活啊,和各种前端框架结合方便啊;后台又蹦出一个Entity Framework,好在我用的是NHibernate,这玩意我没怎么接触……
  • 还没有接触的,现在火得一塌糊涂的,还有各种前端框架,什么Vue啊React啊之类的;以及万众瞩目的.Net Core
  • ……

也就不到十年的时间,回过头来看看,确实是眼花缭乱——这还就ASP.NET这一块!

我不是经常以“野生程序员”自居吗,有人看了我的经历,说,“呸!你都培训班出来的,你好意思说你是‘野生程序员’?”我仔细琢磨琢磨,培训班学的那点东西,和我现在用的这些技术,不知道哪里哪里了哟!

其实啊,不管科班的,还是野生的,做程序员,最终还是靠自学,否则根本走不远,是不是?

 

可能有些刚入行的同学被吓着了,呵呵。但其实呢,也没你们想像的那么恐怖。我说几点:

1、技术是渐进地演化的。每一个新技术,都不是凭空出现,而一定是构建在之前的技术上的。这就有两个结果:

  • 有基础的老人,可以更轻松的学习新技术。比如有了ASP基础的老鸟,学习ASP.NET,不管是WebForm,还是MVC,你这些组件,直接一跑看生产的html,就已经懂了一大半,其他的GET/POST,cookie,session,门清儿得很。对于老鸟来说,很多东西,换汤不换药,上手快得很。
  • 直接学习新技术的新人,扎实程度上比不上老人。这一点,我发现很多“外行”真没搞懂。我转行那年,才26岁,我表姐就说,“搞IT,是年轻人的事,你都这么一把年纪了……”当时我还真被她给吓着了,但入行越深,才越发现不是那么回事。

这里干脆多说点。

我是那种看了“21天精通ASP.NET”视频就死皮赖脸混进IT队伍的,拖控件的时候觉得简单,但很快,各种具体问题就出来了。我记得当时有一个问题,是后台取不到前台传回来的值,记得我满头大汗,无计可施,只好找我们 team leader,他是从ASP做过来的,“这简单啊,不要急不要急,方法很多!最简单的放一个hide input,或者放在cookie里,或者给个url参数……”

我印象特别深刻。一方面,他那种气定神闲的架势;另一方面,就在那一刻,我明白了那种“在基础层面上的差距”,不知道怎么形容,大概就是所谓的“底蕴”吧?

所以那时候ASP.NET开发人员被人看不起,“除了拉控件,啥也不会”。但这话是不对的,“除了拉控件,啥也不会”的,是我这种一开始就学ASP.NET WebForm的人。这也是没有办法的事,那时候凡是讲ASP.NET 2.0的,不管是书籍,还是视频,基本上就只讲控件,其他的就一笔带过。确实啊,讲ASP.NET 2.0的,不可能给你从Html开始讲起吧?但没有这些东西,你的知识,你的技能,其实是“浮”着的。

这里面,最关键的,是“技能”。“知识”吧,你还可以补,我回头学就是了;但日积月累形成的“技能”,是很难很难短时间内补上的。

其实我做一起帮的直播,就是想的让观众通过观看一个真实的项目开发过程,来弥补“工作经验”上的不足。但越做到后来,越觉得这基本上是不可能的——除非有人愿意跟着做,甚至跟着做都不行,要换着花样的做,要遇到困难并解决困难,才能得到磨练并形成能力。

我在直播中,遇到了各种稀奇古怪的问题。这些问题,才是衡量一个人能力的试金石。大家回想一下自己工作中搞不定的问题,是不是甩给了老大?那老大是怎么把它们解决了的呢?老大怎么就能把它解决了呢?大家都是用的C#,语法类库你都没问题,在知识层面上,你和你们老大可能是差不多的,甚至你们解决问题的方式都是一样的,google一下呗!但为什么老大就能搞定,你就搞不定?这就是能力的差距。

能力,是练出来的,是时间给垒出来的。

 

2、技术是越来越简单的。

很多新人,一听到新技术,两眼冒光,像打了鸡血一样,以为各种高大上。其实啊,越是新技术,越没有“技术含量”,或者,技术含量在新技术本身里面,而不在“学会新技术”“使用新技术”上。

举个例子,Ajax,最早的时候,要使用XMLHttpRequest对象,各种回调,各种兼容,那时候要谁会用Ajax,绝对的大牛。现在有了JQuery,Ajax绝对就一大路货,不会Ajax你好意思说你是前端?是不是现在的程序员都集体涨了技能?肯定不是的嘛,JQuery的Ajax那么简单,是个人都会啊!

你自个算算,从汇编到C语言,从C++到C#,从ADO到ADO.NET,从Linq to SQL到Entity Framework……所有的这一切,是不是让开发变得更简单了?不然,凭什么现在人家四个月培训出来就能干活?我那时候,要两年呢!

不是“培训班降低了IT行业的门槛”,是微软,是Google,开源社区里不断提供“新技术”“新框架”的牛人们,KISS(Keep It Simple, Stupid),有意无意的降低了IT开发的门槛——说不定以后哪一天,编程就像打字一样,是个人都会哟!

 

一不小心,就扯了这么多了?也不知道对大家有没有什么借鉴意义。

技术方面,就先说到这里吧。下次我们有机会,再聊聊技术之外的事情。顺便聊,大家有什么问题,欢迎留言,都会看的,O(∩_∩)O~

相关文章
|
存储 移动开发 负载均衡
晨兴夜寐:这一次,彻底搞懂Cookie,LocalStorage,SessionStorage
晨兴夜寐:这一次,彻底搞懂Cookie,LocalStorage,SessionStorage
1898 0
|
机器学习/深度学习 人工智能 算法
人工智能在医疗诊断中的应用与挑战
本文探讨了人工智能(AI)在医疗诊断领域的应用及其面临的挑战。随着技术的不断进步,AI已经在医学影像分析、疾病预测和个性化治疗等方面展现出巨大潜力。然而,数据隐私、算法透明度以及临床整合等问题仍然是亟待解决的关键问题。本文旨在通过分析当前AI技术在医疗诊断中的具体应用案例,探讨其带来的优势和潜在风险,并提出相应的解决策略,以期为未来AI在医疗领域的深入应用提供参考。
396 3
|
设计模式 小程序 前端开发
通义灵码一周年:通义灵码,一款适合零基础初学者的编码搭子
本文介绍了作者作为前端开发工程师,通过体验通义灵码的@workspace和@terminal功能,从零基础初学者的角度出发,逐步掌握编程的过程。文章详细描述了安装通义灵码的方法、如何通过提问学习项目结构和功能、以及如何使用@terminal执行和启动项目。最终,作者表示通过这些工具,他已经顺利入门编程,并将继续探索更多功能。
709 1
通义灵码一周年:通义灵码,一款适合零基础初学者的编码搭子
|
运维 前端开发 算法
阿里及各大企业中台架构详解(上)
阿里及各大企业中台架构详解
1692 0
阿里及各大企业中台架构详解(上)
|
程序员
程序员的挑战与机遇:中国技术人才的现状
在中国,程序员作为技术行业的中坚力量,面临着一系列独特的挑战和机遇。这些挑战不仅影响着他们的职业发展,也关系到整个技术行业的进步。本文将探讨中国程序员面临的一些主要问题,并分析这些问题背后的原因,同时探讨可能的解决方案。
224 1
|
机器学习/深度学习 人工智能 算法
深度学习在计算机视觉中的突破与未来趋势###
【10月更文挑战第21天】 近年来,深度学习技术极大地推动了计算机视觉领域的发展。本文将探讨深度学习在图像识别、目标检测和图像生成等方面的最新进展,分析其背后的关键技术和算法,并展望未来的发展趋势和应用前景。通过这些探讨,希望能够为相关领域的研究者和从业者提供有价值的参考。 ###
641 4
|
存储 弹性计算 运维
考阿里云ACA的经验和心得分享
现在越来越多的人想进入IT行业,但是他们却不知道阿里云认证的存在,导致白白浪费了很多时间,我前年去考了阿里云ACA,对我的工作真的有很大的帮助。
515 0
考阿里云ACA的经验和心得分享
|
存储 缓存 网络协议
42 张图带你搞懂 TCP 和 UDP(三)
这一篇文章是计算机网络连载文章的第四篇,历史文章请阅读 拿下计网协议后,我就是公园里最靓的仔 TCP/IP 基础知识总结 计算机网络基础知识总结 那么下面就开始我们本篇文章,文章组织脉络如下
42 张图带你搞懂 TCP 和 UDP(三)
|
机器学习/深度学习 分布式计算 物联网
基于LinkLab的物联网在线实验教学(上)——阿里云 MVP高艺
由于疫情的影响,线下教育纷纷转为线上教育。而对于物联网在线教育来说,安装配置开发环境以及购买开发板都很大程度上提升了初学者进入物联网领域的门槛。浙江大学副教授高艺给大家做了相关直播分享,主要介绍了阿里巴巴-浙江大学前沿技术联合研究中心网络安全实验室(之后改为物联网实验室)推出的在线物联网实验平台LinkLab的相关知识。
2639 1
基于LinkLab的物联网在线实验教学(上)——阿里云 MVP高艺
|
机器学习/深度学习 人工智能 自然语言处理
阿里云NPU云服务器AN1搭载平头哥含光NPU高性价比AI推理
阿里云NPU云服务器AN1搭载平头哥含光NPU,提供高性价比AI推理解决方案,阿里云NPU云服务器介绍、NPU云服务器特点及NPU云服务器使用场景:
阿里云NPU云服务器AN1搭载平头哥含光NPU高性价比AI推理

热门文章

最新文章