有编程基础,辞职每天自学四小时编程,做git项目,刷leetcode。会比大厂在职的程序员成长慢吗?

肯定会慢的,纸上得来终觉浅。不要说大厂了,可能比不过很多学习氛围比较好的中小型公司,只有自己去做商业项目才能明白用户需求,只有自己去把技术运用到实践中才知道突破点在哪。

闭门造车只是在原地踏步,如果是初级码农的话可能还有效果,但是到了中高级的时候,不是单纯的写代码就行了,后面你还要懂设计模式,跨部门的交流,厉害的还要在甲方提需求的时候挖掘潜在需求,这样就不要一天到晚改需求了。

然后如果想往技术深耕的话,除了架构师其实还有现在比较热门的人工智能行业,这是我们一个新的进阶路线,很多人都在说学人工智能就是转行,其实不是,我以前的目标就是架构师,后来我脱坑了。

人工智能核心就是算法,算法就是一个有智能的程序,我们本身就是搞程序开发的,我感觉就是我们技术深耕的另外一个方向。

知道我为什么现在有时间和你们在头条、问答上面闲扯吗?因为我训练模型的时候可以自由活动,搭建一个模型就几百行代码,然后看着计算机训练模型就行了。

如果有想往这个方向发展的小老弟可以找我私聊啊,我告诉你我的上岸经验

首先,这样的情况是无法断定的,因为具体得看学的质量怎么样,以及做的git项目的质量怎么样。不过一般情况来说,仅仅是问题中的描述的话,成长还是相对会比较慢的。以下给大家具体讲一讲原因:

第一,经验。程序员不论是否在大厂工作,通常都需要通过不断的工作或者项目来促进开发能力的提升,这个也是最为重要的,程序员要尽可能的接触到不同需求的项目或者工作,在不断的完成之后,会有所提升,得到的经验相比于自学还是会比较多的。

第二,信息资源。对于程序员来说,比如从事大数据、人工智能方向的程序员往往都需要大量的软硬件资源作为研发的基础,而自学者很难能够获得这些资源。另外,大部分程序员的工作需要多个角色进行配合,在配合的过程中也能互相促进,不少应用级程序员就是在合作的过程中逐渐成长为研发工程师的。所以,交流对于程序员的成长往往会起到更加重要的作用。

综上所述,对于初学者来说,自学在短期内应该是有一定效果的,且效果提升应该也是很明显的。但倘若想要继续深入,还是要通过工作尽可能的给自己压力去学习。大家对此有什么看法吗?

首先,对于程序员来说,岗位提升和自主学习是两个主要的成长手段,但是岗位提升往往会起到更重要的作用,所以并不建议已经具有编程基础的人完全通过自主学习的方式完成提高。

程序员不论是否在大厂工作,通常都需要通过不断的岗位提升来促进开发能力的提升,不论是从事业务功能实现的应用级程序员,还是从事平台设计的研发级程序员,都需要不断突破岗位瓶颈从而获得成长。

对于程序员来说,能力的提升不仅仅包括做项目刷代码,更重要的是岗位往往会给程序员带来更多的资源,比如从事大数据、人工智能方向的程序员往往都需要大量的软硬件资源作为研发的基础(比如深度学习对于运算资源就有较高的要求等等),而自学者很难能够获得这些资源。另外,大部分程序员的工作需要多个角色进行配合,在配合的过程中也能互相促进,不少应用级程序员就是在合作的过程中逐渐成长为研发工程师的。所以,交流对于程序员的成长往往会起到更加重要的作用。

最后,对于初学者来说,通过做Git项目是会获得一定提高的,而且短期内的提高还是比较明显的,做Git项目一方面会促进自己的代码规范性,另一方面也会积累大量的编程经验,通过Git也可以完成一些交流,这些对于初学者来说都是有较大帮助的。所以,不少在职的程序员也会参加一些自己感兴趣Git项目。

我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有互联网方面的问题,或者考研方面的问题,都可以咨询我,谢谢!

本人是一个前端工程师。我的观点:自学比大厂在职成长更慢。

分析一下,github项目应该是指参与到开源项目的开发。这个我有一点发言权:我参与了harbor的一个较为独立功能的前端开发。

我学到了什么呢?PR的分支管理?前端代码的整体架构?还是说变量函数的命名规范?emmm….其实都有学到一点东西。学到最多的估计是熟悉了Angular的代码并进行开发,毕竟在此之前,我都是Vue阵营的。整体来说,开源项目和实际项目有一定的差距。而且开源项目的逻辑复杂度并不一定不会比实际项目高。就算harbor有多语言配置、各种组件高度抽象。

再一个非常现实的问题,如何参与到开源项目?我的经历估计没啥可复制性:我司后端在工作项目中用到了harbor,然后根据业务需求提出了新的特性反馈给社区,然后我参与到了其中。emm…开源项目经验也是来自于实际工作,就很现实。据我个人了解,开源经验一般是解决issue、完成feature、或者是在某个生态圈自己产出项目。这里面对开发者的要求也是一步步往上升。

leetcode我不是很熟悉,不过在类似的学习平台上也做过些算法题。工作中作用蛮大的,建议去刷,过程中要着重看下别人的思路,涨见识!

最后说下,我为什么认为大厂的在职员工成长更快。

1.同事间互相补充,沟通更方便。项目有需要用到的新框架,新组件。可以直接在群里发个消息,基本上会有人知道,然后可以很快上手,解决问题。比如我之前调研了xterm,实现了浏览器的shell功能。同事在其他项目里或新需求有用到,就不需要再去从头开始了解。比如我想把ts引到项目中来,有个同事之前在另外的项目实践过了。那我就可以少踩很多坑。

而一个人的话,碰到坑,基本只能去论坛、社区里求助;新知识需要一个人找资料、再去消化。当然,这样的获益会大一些,只是时间成本会大更多。

2.项目督促学习。每个deadline,需要我们有完成需求,或者有文档产出。举个例子:我接手的项目需要我去调研openShift的UI项目。迭代出调研报告。那我就得去好好看,我还得思考怎么和实际项目结合起来。

自己学习的话,说实话,这里是非常大的坑。很容易没有重点;或者说学到了东西,没有实践的机会,知识学到了也很容易遗忘。

ps: 工作的成长快,其实也有个大前提:不能只做一些重复的业务工作。

从事软件开发多年,编程学习最快的方式就是实战做项目,无论是在学校还在培训机构亦或是自学都无法抵得上经历几次实际的项目来的靠谱,对于新手程序员来见最刺激应该是第一次真正经历项目,而且由于在项目中需要配合工作,如果自己做的模块对整个系统带来副作用,这种场景会让一个技术人记忆终身,所以实战项目种最刺激进步也最大。

现实中leetcode有什么好处

无论是leetcode还是ACM对于理论的基础的拓展和纵向的挖掘有着极大的好处,特别是对于互联网公司的面试好处极大,很多人刷几遍leetcode就能轻松过互联网公司的面试,这也是在国内存在的最大意义,对于一个普通程序员来讲在闲暇之余可以刷刷题目练习下基础,对于夯实基础有着极大的好处。

对于还在编程入门路上的小伙伴,leetcode有助于提前了解面试官考察的题目,提前预热面试官要问的题目,leetcode和基本项目实战还是存在一定的差异,毕竟对于做产品或者项目需要解决实际的问题,而且为了实现一个功能采用的招数套路很多,优秀的程序员往往能够用最简短的代码解决硬骨头,初级程序员可能在代码弄上一堆,未必真的触及到问题的根本。

有一定的编程基础如何再去提升自己的能力

如果有基础可以在刷下leetcode题目,直接投简历找工作用最快的时间找份工作,在工作中提升自己的技能,不同的羡慕或者产品对于个人的提升方向也不一样,经历一次实战项目。编程项目属于实际解决问题能力以及抗压能力,很多人能力很强遇到困难就不相信自己能够做好,首先保持一颗平常心遇到问题用理智平稳的处理,解决实际问题不一定非要从技术的范畴出发,解决客户的问题或者提出的功能为导向,同时不能因为功能的增加而把项目框架弄得千疮百孔。

要达到这种能力最快的捷径是不断经历这种实战,在现实种模拟实战距离真正场景还是有差距,老的程序员的经验就是在经历了多次的项目之后得出的,这也是很多程序员在面试时候最值钱的地方,面试官经常提到的几句话做过什么项目,在项目种遇到一种场景的问题该如何解决等等问题。

但对于还没有踏入工作岗位的程序员,如何做才能提升编程能力是一个初学者都遇到一个话题,最直接能做的就是夯实基础,在实践机会来临的时候不再需要临时抱佛脚,多做练习。

自学编程和在职的程序员无法比,不具备可比性,大厂的程序员天天做的都是实际的产品或者项目,模拟再多也仅仅是演练,和真实的场景就是有差距。踏踏实实打好基础,刷刷题目,做做练习是当前可以力所能及做的事情,有机会就去参加下技术面试,找找自身的不足,技术的需要长期的积累,希望能帮到你。

1、不去大厂,你很难遇到复杂度和规模,有很多问题,特别是在后端领域,复杂度一大,规模一高,简单问题也变成复杂困难的问题。你自己在家里做项目、刷leetcode的话,很难遇到类似的问题,这些问题是很难通过练习和小项目预想出来。现在业界很多问题、很多系统,比如分布式系统、架构设计都非常复杂高深,你自己闷在家里学习,这些东西怎么办,难道全部自己再实现一遍,且不说你不一定能写出来,即便可以,要写到猴年马月呢?

2、技术跟赚钱不是同一回事,光有技术也没办法赚钱,能通过自己的独立产品赚钱的人,都是能抓住用户需求,懂产品设计,会运营自己产品的人。只会技术的人,无法在这个时代赚到钱,现在开发软件的门槛不算特别高,很多需求都被人实现,很多产品都很成熟人家积累比你多。

3、零成本互联网这个方向值得尝试,但是没有门槛的行业必定竞争激烈,所以辞职去尝试这么激烈的行业不是特别稳妥,可以一边上班一边尝试轻资产创业,等项目有起色后,再来考虑辞职这件事,很多自媒体大佬也是类似的途径成功的。

刷 leetcode 我知道,你在 leetcode 上做算法题,刷算法,可能想通过这种方式来提高自己的算法能力,毕竟程序员面试的时候,算法是比较重要的一环。

但是做 git 项目是什么鬼?git 是什么?是代码管理工具, 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。题主貌似没明白什么是 git 吧?这样的话,在家自己学习容易误入歧途啊!

你应该想说的是在 GitHub 上学习一些开源项目吧?GitHub 是一个开源项目的社区,是可以进行代码管理,里面有很多开源项目值得学习。

建议你在自学编程期间一定要搞清楚各种工具和技术之间的概念,概念都搞不清楚的话,容易学着学着就走错路了,就跟古代武侠上的人一样,闭关练功,容易走火入魔

一个人的成长和学习,无非这两条道路,一个是自我主动学习,一个是在工作实践中提升自己

但是一个人真正的提升,是坚持两条道走路,而不是只坚持其中一个。

自己在家学习,自学当然不错,但是自己学的时候,其实成长和提升的都比较慢,并不是自己在家学习的时候,很难控制自己的时间,无法控制懒惰,也无法合理管理时间,抛出去这些因素之外,更重要的是自己学习,是一个相对缓慢的过程,自己学习很容易误入歧途,在学习的过程中会经常走弯路,所以会缓慢,有时候,会跟实践脱节。一旦这样的,你学习的成本会大大提高,学习的效率会大大降低。

而在工作和项目实践中学习提升的话,是结合实践的,实践是检验真理的唯一标准,实践也是矫正你学习路线的一种方式。在项目实践中,会经常遇到一些现实性的问题,实践性的问题,而这些问题,可能会让你攻坚克难,你一旦把他们克服了,提升有可能是质的改变。这是自主学习不能相比的。

自学,往往都是一直在学,而不是在克服困难,学的时候,看别人讲,看书都觉得对,但是只有实践的时候,才知道你自己有没有掌握。而实践真正的项目,往往会遇到很多问题,解决问题才会让自己有质的飞跃。不仅让你学习了,而是也提高了自己的解决问题的能力。

尤其是编程这个行业,我感觉编程重要实践,所以在项目中历练比自己学提升的更快,更好。

做了快十年的程序猿跟你说一下所谓的自学和实战的差距。

首先自学,就是完全靠自己的学习能力去学习东西,没有人指导,没有人帮你找到关键所在,例如同样100个字的一段话,可能也就十几个字是精华,学习能力强的马上就能找到这十几个字,学习能力差的就没办法了,把100个字单独拆开都认识,组合在一起就没法理解了,这时候学习能力差的就需要所谓的老师来指导,找到真正精华的十几个字。

同样在工作做实战的话,不论是遇到的问题还是学习的环境都是不一样的,大家一起讨论一起学习,氛围在那,脑袋不容易走神,很快就会学习了,尤其是对于软件行业,有的时候都得要好好学习,仅仅凭自己还是很难学到精华的。

当然自学的话,大多数情况下还是可以让你去写代码的,做个东西出来还是没啥问题,但是当出现bug的时候,解决问题的能力就要拉出来了,有的人几分钟就能找到问题并且解决,自学只会皮毛的就没法找到问题所在,没准找一天都解决不了问题。

所以作为老程序员,有机会在外实战的,还是实战,不要在一个人的海洋里无法自拔。

感谢邀约,如果你要和大厂里那些不是混日子的,懂得学习的程序员想比的话,你的这种方式肯定会比他们慢,毕竟我们这一行业的人要多实践,才能不断的提升。不知道大家是否有这种感受没,如果让你大半个月不写代码,你就会觉得手很生,无从下手。不到万不得已,千万不要辞职在家自我学习,除非你觉得现在的工作岗位太忙,天天都是重复性的工作,根本没时间提升自己。

既然你这么问,我觉得你是想通过一种快速提升自我的方式,进入大厂,要不你也不会辞职,提出这样的问题,以下是我针对你的问题,结合我的自学经验和你分享下,怎么能更快的通过自我学习提升自己,以下是我的个人观点,仅供参考,欢迎大家指正和补充:

明确目标,制定计划

首先要搞清楚,你辞职学习,想到达什么样的效果,别漫无目的的学,如果你要深入学习算法、数据结构、设计模式这几门理论课,你要啃上半年也是不够的,这是编程的思维需要不断的在实践中去运用和体会。你要制定一个短时间内能够达到目标的学习计划,你可以针对你想去的目标公司,看看这些公司的招聘需求,看看自己还缺少哪项技能,然后针对性的进行提升。比如手机端开发,目标公司使用 flutter 技术开发移动端,或使用混合开发,要求你熟悉掌握 Vue 或 React。在提升之前,建议你先咨询下专业人士相关的学习路线图,知道每个阶段要学习什么,查漏补缺,然后制定切实可行的学习计划目标针对性学习。

自律性要加强,要有激情,静下心来,战胜自己

自我学习,最重要的是加强自我的管理,毕竟不是在学校期间,有老师监督你去学习,这里完全的靠的是自己,学习一定要自律,按照自己制定的计划严格执行。学习这个过程是持久见效果的,因此你不能急躁,要静下心来,学习本来就是辛苦的事情,时刻保持一种激情,战胜自己内心的急躁和恐惧,坚持下去。如果你觉得学习孤独的话,建议你可以去找些图书馆和书吧去学习,在一起学习的人多了,就没有孤独感了,呵呵。

建议看书,系统性的学习

虽然做git项目,刷leetcode,也能提高自身的能力,但是知识还是比较零散,不如看书比较系统,所以我建议还是根据自己的学习目标,找些行内专业人士推荐的书籍进行系统学习,这样你学的知识才比较扎实,知识体系也更加全面。

养成做笔记分享的好习惯

俗话说的好,再好的记性比不过烂笔头,因此我们学习的过程中要像我们高中、大学学习那样,养成记笔记的习惯,只有通过自己思考梳理的内容印象才深刻,建议你开通个头条号或公众号,把自己的学习成果分享出来和同行进行交流,通过交流你会发现自身的不足,同时又可以结交更多的同行,说不定同行还会给你介绍内推的工作机会呢。

一定要动手实践

虽然是在家学习,不能光看书,不去动手实践,这样你学的知识是不扎实的,不会应用。你也许会问,不知道做什么项目,其实项目很多,只要你静下心来思考。你可以找些和自己学习目标比较接近的案例动手实践,比如你学习 Flutter 开发,你可以去模仿一个自己感兴趣的 APP 亲自动手实践下,先把项目的需求梳理出来,然后根据需求,沉下心来动手实践,实践过程中会锻炼你的思考,帮助你发现学习过程中问题。

找一些社区多交流

可以加入一些技术论坛和社区,或微信群等等,看看同行们都在聊什么,有什么问题,同行发布了哪些人气比较高的文章,你也可以去学习学习,你在其中也会不知不觉的有所提升,要主动和同行的人进行交流,交流的过程也是一个提升的过程。

自我学习也一定要有个期限,要出去找工作

不要把学习计划定的太长,如果太长,你在去找工作的话就很难适应和不习惯,建议你制定个短期的学习目标,最多3~4个月,时间太长,不利于你的职业发展。学的差不多了,你可以尝试性的投简历,面试也是个学习的过程,不要怕被拒绝,而否定自己。尽快到工作中去提升自己的学习能力。

小节

今天的分享就到这里,这里我来做下总结,不建议辞职去提升学习,建议边工作边学习,如果你确实发现在原单位无法提升自己,自己的自制力又强,又有清晰的学习目标,只要方法得当,短时间内自我学习提升自己也是没有太大问题的。关于问题,大家有什么看法呢,欢迎在留言区与我交流哦,如果你认同我的看法,欢迎给个赞支持下哦。

我自己在一线互联网行业也从业3年了,也是从小白一路走过来的,这个问题还得的从自己的现有实力出发来分析。

如果是新手:

推荐去大厂工作。新手什么概念呢,就是知道一些编程语法和熟悉一些编程框架,比如Java常用的SSM(Spring+SpringMvc+mybatis)等,没有太多的实际开发经验。对于新手来说,编程知识可能给不是他们最缺的,而是实战经验。因为很多实战经验是光靠学习基础知识、刷题是体验的不到的。虽然刷leetcode对程序员锻炼思维和算法能力有很大的重要性,但是在实际开发中用到的还是相对较少。另外就是做git项目,github上顶级项目基本都是根据实际业务场景研发的,脱离了业务场景这个顶级项目就没有灵魂了,对于一个新手来说,连业务场景都不清楚怎么能参与github顶级项目呢。参与github上的普通项目其实对自己成长和经验来说提升真不如去大厂工作来的快。而且在大厂可以多请教一些公司的大佬,会得到不错的成长。

如果有3-5年工作经验:

推荐先刷leetcode等然后再去大厂实践。这里3-5年的工作经验并不是仅仅指具体的3-5年工作经验的同学,实际上指的是有工作经验接触过不少业务场景,但是对一些技术原理、算法等并不是很了解,又想进一步提升自己的人群。这部分人群如果在公司继续做项目有成长但是不大,大部分工作都是基本的CRUD。所以想提升自己就要从底层、原理入手。这时候刷leetcode可以提升算法能力。同时可以参与一些在工作中实际应用过的github开源项目,如zookeeper等,这样不仅可以提升自己对技术原理的掌握,还增加了自己参与顶级开源项目的经历(这个对找工作来说很重要)。从底层原理提升自己后就可以去大厂实践下,看看大厂是如何将这些底层技术用到实际业务中去的。

总结:不能盲目的去说哪种方式提升更快,而是从自身具体情况出发。新手建议去大厂工作提升自己。有开发经验但是想提升自己对底层知识认知的同学,可以先刷leetcode算法、了解相关技术原理、参与一些gittub开源项目提升自己,然后在去大厂实践。

未经允许不得转载:创速极风 » 有编程基础,辞职每天自学四小时编程,做git项目,刷leetcode。会比大厂在职的程序员成长慢吗?

搞事情!那些不能说的秘密都在这里   关注公众号:创速极风  

         

赞 (0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏