从事软件开发多年,编程学习最快的方式就是实战做项目,无论是在学校还在培训机构亦或是自学都无法抵得上经历几次实际的项目来的靠谱,对于新手程序员来见最刺激应该是第一次真正经历项目,而且由于在项目中需要配合工作,如果自己做的模块对整个系统带来副作用,这种场景会让一个技术人记忆终身,所以实战项目种最刺激进步也最大。
无论是leetcode还是ACM对于理论的基础的拓展和纵向的挖掘有着极大的好处,特别是对于互联网公司的面试好处极大,很多人刷几遍leetcode就能轻松过互联网公司的面试,这也是在国内存在的最大意义,对于一个普通程序员来讲在闲暇之余可以刷刷题目练习下基础,对于夯实基础有着极大的好处。
对于还在编程入门路上的小伙伴,leetcode有助于提前了解面试官考察的题目,提前预热面试官要问的题目,leetcode和基本项目实战还是存在一定的差异,毕竟对于做产品或者项目需要解决实际的问题,而且为了实现一个功能采用的招数套路很多,优秀的程序员往往能够用最简短的代码解决硬骨头,初级程序员可能在代码弄上一堆,未必真的触及到问题的根本。
如果有基础可以在刷下leetcode题目,直接投简历找工作用最快的时间找份工作,在工作中提升自己的技能,不同的羡慕或者产品对于个人的提升方向也不一样,经历一次实战项目。编程项目属于实际解决问题能力以及抗压能力,很多人能力很强遇到困难就不相信自己能够做好,首先保持一颗平常心遇到问题用理智平稳的处理,解决实际问题不一定非要从技术的范畴出发,解决客户的问题或者提出的功能为导向,同时不能因为功能的增加而把项目框架弄得千疮百孔。
要达到这种能力最快的捷径是不断经历这种实战,在现实种模拟实战距离真正场景还是有差距,老的程序员的经验就是在经历了多次的项目之后得出的,这也是很多程序员在面试时候最值钱的地方,面试官经常提到的几句话做过什么项目,在项目种遇到一种场景的问题该如何解决等等问题。
但对于还没有踏入工作岗位的程序员,如何做才能提升编程能力是一个初学者都遇到一个话题,最直接能做的就是夯实基础,在实践机会来临的时候不再需要临时抱佛脚,多做练习。
自学编程和在职的程序员无法比,不具备可比性,大厂的程序员天天做的都是实际的产品或者项目,模拟再多也仅仅是演练,和真实的场景就是有差距。踏踏实实打好基础,刷刷题目,做做练习是当前可以力所能及做的事情,有机会就去参加下技术面试,找找自身的不足,技术的需要长期的积累,希望能帮到你。