入坑IT都快十年了

freeflying1222 2017-09-26 03:42:21
从包工头到程序猿,一晃就是快十年了。

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

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

其实心里有点乱。

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



XXX(我做的一个项目,担心广告被删)的所有功能,我捋了一下,其实也没什么复杂的。仅从功能来看,五年前,甚至七年前,我都应该能够做出来了吧?那我这些年,究竟在干嘛呢?

所以有一个非常流行的问题:“程序员三十/三十五(以及五年后的四十?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开始讲起吧?但没有这些东西,你的知识,你的技能,其实是“浮”着的。

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

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

我在直播中,遇到了各种稀奇古怪的问题。这些问题,才是衡量一个人能力的试金石。大家回想一下自己工作中搞不定的问题,是不是甩给了老大?那老大是怎么把它们解决了的呢?老大怎么就能把它解决了呢?大家都是用的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~

+++++++++++++++++++++++++++

这本来应该是博客的,人气太差,所以发到论坛里涨点人气。欢迎大家关注我CSDN的博客:编程那些事
...全文
1150 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccbzzp 2017-11-08
  • 打赏
  • 举报
回复
慢慢来,坚持,终究会有所成功
shadowpj 2017-11-06
  • 打赏
  • 举报
回复
12年delphi数据库开发,技术没有,重复着,重复着!
狂奔吧码奴 2017-11-06
  • 打赏
  • 举报
回复
引用 14 楼 shadowpj 的回复:
12年delphi数据库开发,技术没有,重复着,重复着!
delphi现在市场上基本没有职位了吧 08年做的MFC现在也没市场了 转JAVA中
  • 打赏
  • 举报
回复
慢慢来,坚持,终究会有所成功
春风醉 2017-10-10
  • 打赏
  • 举报
回复
LZ26岁入IT这行,还属于年轻,没啥不合适的。很可以的。 LZ说的对,目前真正的核心技术已经被层层包装,实际上现在程序员等岗位的人,已经远离真正的核心技术了。很多人能拿着若干开发包,摆弄得很溜,但如果你让他说说这里边的核心门道是什么,他却说不上来。 记得前些年有一个事。就是一个用MFC开发非常牛的人,去微软应聘。人家问他windows程序的运行机制是什么。他答不上来,他只能说一堆若干类如何如何。这就是最直接的情况。其实真正懂得运行机制的人,并不需要那么繁琐地去实现,反倒是包装之后屏蔽了太多真正的内幕技术。看着眼花缭乱,但其实已经远离本质了。正因为层层的包装虽然表面上使很多工作越来越门槛低,但也使这些工作人员越来越不得真经。也就是说,现在程序员与从前的程序员的差别就是对系统运行机制的真正掌控。 而真正掌控这些核心的永远都是那些垄断大公司,而这越来越随着各种开发包的不断包装,越来越变得不为普通人知了。 LZ这种转行进入IT应该会不错,因为你够聪明,懂自学。但也仅限于混在应用技术层。如果你向深层次进击的话,你就会发现很难,因为你没有原理性的技术底蕴。这就是科班与非科班的区别。不过我想在你离开这行之前应该该不会遇到这个问题。
把分全给哥 2017-10-09
  • 打赏
  • 举报
回复
NoEdUl 2017-10-09
  • 打赏
  • 举报
回复
引用 9 楼 kitty22030 的回复:
[quote=引用 7 楼 u012947309 的回复:] [quote=引用 6 楼 kitty22030 的回复:] [quote=引用 5 楼 u012947309 的回复:] 卧槽楼上一个公然用万字旗做头像的。
然后呢?我反动了?还是支持纳粹了?[/quote] 不,你只是牛逼。[/quote] 被你举报,然后头像被和谐了。[/quote] 想多了 不是我 咬人的狗不叫。
菩提 2017-10-09
  • 打赏
  • 举报
回复
引用 7 楼 u012947309 的回复:
[quote=引用 6 楼 kitty22030 的回复:] [quote=引用 5 楼 u012947309 的回复:] 卧槽楼上一个公然用万字旗做头像的。
然后呢?我反动了?还是支持纳粹了?[/quote] 不,你只是牛逼。[/quote] 被你举报,然后头像被和谐了。
NoEdUl 2017-09-28
  • 打赏
  • 举报
回复
引用 6 楼 kitty22030 的回复:
[quote=引用 5 楼 u012947309 的回复:] 卧槽楼上一个公然用万字旗做头像的。
然后呢?我反动了?还是支持纳粹了?[/quote] 不,你只是牛逼。
菩提 2017-09-28
  • 打赏
  • 举报
回复
引用 5 楼 u012947309 的回复:
卧槽楼上一个公然用万字旗做头像的。
然后呢?我反动了?还是支持纳粹了?
狂奔吧码奴 2017-09-27
  • 打赏
  • 举报
回复
计算机系统原理 算法导论 数据结构 编译原理 网络系统 原理 操作系统原理等等 这些才是真正的干货 其他的开发语言什么的只能说是工具吧
NoEdUl 2017-09-27
  • 打赏
  • 举报
回复
卧槽楼上一个公然用万字旗做头像的。
菩提 2017-09-27
  • 打赏
  • 举报
回复
引用 2 楼 qq_37463450 的回复:
计算机系统原理 算法导论 数据结构 编译原理 网络系统 原理 操作系统原理等等 这些才是真正的干货 其他的开发语言什么的只能说是工具吧
其实自古以来从不缺乏干货,缺乏的是把干货变成干货中的干货。从中国发现火药这个干货到西洋人把火药造成枪炮这种工具打开中国的国门就用了几百年时间。
菩提 2017-09-27
  • 打赏
  • 举报
回复
说不定以后哪一天,编程就像打字一样,是个人都会哟! 这话意味深长。。
乐之者v 2017-09-26
  • 打赏
  • 举报
回复
技术一直没什么提高。。反复地增删改查。很迷茫。

662

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧