想毕业就进大厂,以下知识必须掌握:
1.算法和数据结构:数组,链表,二叉树,堆栈,排序算法,B+/B-树,DP(动态规划)等
2.计算机网络:HTTP,DNS,ARP,TCP,IP,ICMP,UDP等
3.操作系统:IO,存储器,多线程/多进程,同步机制,处理器调度及死锁,设备管理,通道等
4.计算机组成原理:冯诺依曼计算机组成,计算机层次结构,计算机性能指标等
5.最后选定一门主攻的语言方向,比如Python,C++,Java等并真正攻克它 在错误中吸取教训
对于软件开发人员来说,在工作中获得反馈,通过反馈矫正行为和方向非常重要。这其中的重点是:在错误中得到反馈,并汲取教训,获得成长。交付产品的BUG,领导对你提的建议等等,你是否记录了,沉淀了,并力争在下次得到进步和改进?来自业务,产品和其他人的反馈,会让我们明白自己的短板,应该如何针对学习和成长。但很遗憾的是,不少同学不仅不会在错误中成长,反而试图掩盖和消弭自己的错误。
我们应该对每个反馈保持积极的态度,当然你可以选择接受或者拒绝,但应该保持平和的心态去学习。没有人能永远正确,终身学习才会让自己更强大。
拒绝写烂代码
大部分游戏程序员或多或少都有代码洁癖,这是因为他们把代码和交付物当做艺术品而不仅仅是一项工作。
关于这点雷军说过:“编程的工作和石匠的工作差不多,是技术活同时也是体力活,而编程不仅仅是技术,更是艺术,也只有具备对艺术的追求,才能催生出更多优秀的产品。”
缺乏经验的程序员很难写出优美的代码,在看他们的代码总有一种感觉就是:一不小心就陷入了迷宫,找不到方向和出口。
在动手写代码之前,设计出代码框架并用StarUML等软件绘制出代码时序图和类结构图
重视命名规范和注释,命名最好能起到部分注释作用
定期重构代码,无论是函数和类的抽离,还是结构的优化,在不影响业务开发节奏的基础上,需要经常做
追求代码的优美还有一个很明显的好处:帮助你快速获得结构能力和思维
有经验的技术面试官可以很轻松的观察出你的思维是否结构化 不要盲目追逐新技术
很多开发人员总是在谈论技术潮流,当有了新的技术之际,他们总是异常兴奋,快速投入这项技术的怀抱。过了一段时间,更新的技术出现,他们又抛弃了刚学会的前一项技术,就像狗熊掰玉米,总在学习过程中虚幻自己感觉都掌握了,但其实真正掌握一项技术,需要长时间的实战应用并需要在反馈中前行的。
限于公司业务的稳定性,他们学习的新技术大部分不会应用于线上产品,自然很难得到实践和反馈。
从工作中需要的技术学起,再应用到工作中,同时从线上得到反馈并改进。
即便学习和工作无关的新技术,也要做一些实际的应用或者小玩意出来。
程序员在职场的前5,6年,一定要想办法进大厂,虽然大厂不一定是职场终点,但大厂有些优势:海量用户量,健全的福利,完整的培训优势,完善的晋升制度,这些都是你以后就业的加持器,助力大家的发展。
|