隔离丶七日情
科班出身与非科班出身在职业起步时确实有差距,成熟的科班会全面培养人的思维框架,总体思想。先不说动手能力,起码设计上会有一个略微全面的思路。而非科班出身的,总分为两类,有人教、自学。有人教的话,就看教法和科班是不是相似了,这里没法研究,也就不多说明了。
下面主要说说自学的非科班出身程序员,首先既然能下定决心自学成为程序员并以此为业(学了就可以有多难),那么我认为必定是兴趣与热爱,否则稍有懈怠就容易坚持不下去。上段也说了,科班出身只是优于职业生涯的起步阶段,实际工作的实战经验要比理论教学有用得多得多,你理论再厉害,自己能说一个月,做不出产品来就和没有一样。而非科班出身的程序员多数由于热爱,会逐步专研、实践、再学习,理论知识在现在这个网络环境下,很容易学到,所以也会在工作中很快追上科班出身的,这很正常。
总结,普遍情况来说,科班出身的起步有优势,非科班的长久有优势,重中之重是工作实践,实践中逐步补强自己,谁更能坚持下去,谁的路更宽。
以上回答来自一个非科班出身的13年经验的老头。^O^
十字路口的交易
目前程序员市场供求关系不平衡,大量的“野生”程序员开始抢“正宫”的饭碗,自然少不了引起,某些自豪感爆棚的科班程序员的排斥。
非科班出身的程序员的弱势
非科班出身,也就是在学校里学得不是计算机相关专业的课程,这类程序员在职场中要承受更多的压力。
程序员这个行业有个鄙视链:本科程序员是老大,专科程序员低人一等,非科班出身的程序员?职场偏见很严重。
程序员非科班出身接触编程的时间一定晚于其他两类程序员,无论是在理论,还是技术上都处于劣势,也意味着在思维方式、解题经验方面的落后。
这也是为何科班出身的程序员在面对非科班选手时,往往具备压倒性优势的原因。
所以如果题主是刚刚想如程序员这个行业的话,理解这些也是必要的。
非科班出身的程序员,不仅要面对科班出身者的技术优势,还要面临职场偏见,尽管压力重重,但只要够努力,这一切都不是问题。
“曹巍是学「材料成型机控制工程专业」的,自学了 Java,随后进入一家软件企业,担任元数据产品开发。从新人开始,曹巍一边工作一边积累自己的技术经验,3年后,曹巍进入某数码集团负责技术架构。”
那么,非科班出身,如何成为程序员?
兴趣是关键,选好编程语言
还是要强调兴趣很重要,不要在不感兴趣的地方浪费时间,那样你会超级累!
然后,给自己设定一个学习方向,技术一直在发展,编程语言也那么多,选择更加友好的语言,比如Python。
用简单的编程语言可以让你更容易达到自己选定的目标,这样也会更有动力去进一步学习。
再者,Python现在还是很热门的,当然,这只是一个小小的建议。
在学习编程语言的时候,不要太盲目,给自己定个计划表吧,以Python为例。
我从什么地方开始学Python?
多久能掌握Python?
学到什么程度,就算掌握了这门语言?
学完Python后,我该做怎样的拓展学习?
……
多练习,多做项目
对于程序员来说,逻辑思维也非常重要,多练习可以提升自己的逻辑思维。
所有的技术最后都要付诸与实践,多参与项目能帮助积累更多经验,你的项目操作能力,也将成为简历上的重要证明。
不过,一定要在基础打牢之后在向项目下手,并且建议选择容易出成果的项目去学习。
职业发展的选择
非科班出身程序员在找工作时可能会受到局限,因为许多大公司还是会优先考虑学历的。
而一般的创业公司会更加看重你的个人能力,对于需要什么样的程序员,什么样的程序员是够格的,他们有自己的标准。
简而言之,计算机专业的学位,并不是成为程序员的必要条件,但如果希望成为程序员,那么将要在学习和实践方面付出更多的努力。
W3Cschool
编程与数学
数学是成就卓越开发人员的必备技能,具体问题具体分析,并不是所有的研发人员都需要很强的高等数学。
文档写作
良好的写作能力,和表达能力。
算法
良好的算法功底,这个要看你你所从事的系统开发了
阅读优秀的源码
学会阅读别人的代码,github上有许多优秀的开源源码。
答题、逛论坛、看技术帖子,加入开源论坛,交流、思考、分享
若是凉夜已成梦
学好编程的关键在于强力的实践,建议先找一个好方向入门,比如Java或Python编程,之后尽量找一些好的项目进行实践