新手有哪些途径进行学习编程呢?

1,712 阅读10分钟

今天就是初七了,新的一年祝大家虎年大吉,大吉大利。今天的要说说的是新手应该如何学习编程。

这里的新手最好指在校生啦因为你们还有很多时间可以去学习,了解原理等等很多好玩的事情,我也多么希望我能回到学校的日子。当然还有一个原因外界都说IT赚钱导致卷入了很多非科班出生的同学,我想竞争不要这么大而已啦。这也是GJ为什么程序员是新世纪的农民工的原因。

该怎么学习呢?

相信大家每次都遇到一批公众号关注送XXX大厂的学习笔记这些的内容。或者改怎么学习一前端后端javagolangpythondevops等等的学习路线。

其实这些不是什么干货,实际的工作情况,大家都很迷茫的。一般也不会用上这么多知识点,老老实实把基础和离散数学的逻辑学打牢了,再去研究那些学习路线,你会发现也就回事。编程本来就是一门逻辑学。如果你是一个code review的工作者,你会发现阅读别人代码的时候发现很多很好玩的逻辑过程写法。重发判断做条件这种事情经常发现。所以如果你还没学过离散数学的话,在校的时候建议抽空去看看这样的数据。我这里推荐的是

《离散数学(原书第5版)典藏版》[美]约翰·A.多西(John A.Dossey)阿尔伯特·D.奥托(Albert

需要一个梯子

很多先进的技术论文都来着外国,所以你需要一个梯子。这里的话当然是因为百度这几年为了赚钱忘了自己初衷,本来没有错都是广告的错。加上他的搜索算法是真的不知道如何说好,你能用Google就使用Google,加上Youtube这个大的学习网站【当然国内的话你可以使用B站,只是B站的首页做的没有Youtube舒服,当然你用pad和mobile的话当我没说】。

学习网站

讲了这么多,以上都是准备阶段啦。下面的就是一些学习的网站啦。

  • 幕课网-程序员的梦工厂 里面一些早期的课程还是比较OK,现在推出的收费课程也质量也是杠杠的。关键价格不算太高,相比于你们买一双鞋子来说也只不过是它的1/3。当然这也是看贵人的家庭条件啦。

  • youtube/bilibili - 程序员的白嫖梦工厂 如果你是一个白嫖党,那么YouTube/bilibili,一定是你的学习好地方。无聊的时候还能去舞蹈区放松放松。课程质量也是可以,当时你是新手的话,建议不要去这两个地方,因为都是培训课程,实操项目比较多,一下子你不好吸收。不关是我工作了六年也有很多东西他们分享的经验没有get点。这两个网站你学什么就直接搜索什么即可

image.png

程序员社区

这里的话,我第一个会拉黑的社区是CSDN。程序员时间宝贵,远离CSDN。

  • 掘金 这个我就不多说了,偏向前端开发用户多的社区
  • segmentfault 思否 SegmentFault 思否是中国领先的开发者技术社区,如果你编码的过程遇到问题,可以不用先百度,有两个解决方案,就是先去github里面issut搜索,第二个就是思否看看有没有人提出相关的问题,第三再到谷歌搜索。
  • 开源中国 如果你关注程序的发展和技术,那么开源中国上面的咨询绝对是你优先的知道的,还有就是偶尔可以看看有什么白嫖的开源库看看或许以后对你的开发提供某些偷懒的收益。
  • 知乎 首先是程序员本来就已经很程序了,现在还搞了一个推荐算法。特别是字节跳动,来来去去都是推一些相关的内容给我。天天看着重复的内容你们不感觉无聊的吗?知乎虽然也有推荐算法,但是偶尔也会推一些你不关注以为的问题来给你添加你的认知。最最最最主要是可以看yyx在知乎上撕逼。还有很多答主的故事会。

你想当什么?

IT行业的工程师又分很多种类,人一生经历有限,很多人在毕业的时候都很迷茫,所以我希望你在校的时候就已经确定好自己想做什么?

我这里按我的认知区分。可能有区别为

  • 前端工程师 这里的前端工程师也可以分很多种类
  1. Angular工程师
  2. React工程师
  3. Vue工程师
  4. Node.js工程师(一般以上三个业务工程师,但是webpack等等架构上的优化都是node.js来制作),未来的node.js工程师可以还要会rust和golang。
  5. webgl/webgpu工程师,这一类的工程师要求更高,算法要求更高,但是未来的AR/VR离不开这类开发者。
  • 后端工程师 几乎所有的后端工程师都一样。看你选择用什么语言。这个岗位不好区分,你说厉害嘛的确有很厉害。你说不厉害嘛的确80%的工程师在做CRUD的工作量,靠工龄滚上去的工资。这个水就很水了,希望你能多走近行业的趋势走向,对某个功能有自己的思考,结合生活上来分析它能给我带来什么好处去思考。 也可以思考它怎么实现比较方便这样的事。而不要只是为了CRUD而CRUD。

我是PHP > JAVA > spring boot > spring cloud > redis > mysql > mongodb > es > kafka > rabbitmq(只用延迟队列)

建议还是要学一下java,然后学习一下Springboot的实现,你会发现很多框架都参考SpringBoot的影子。

  • 产品/需求分析师 由于我国的程序员多半是不善于表达,也很少接触市场的。这个时候需要一个IT的沟通桥梁来把市场和开发的人进行交流,你可以理解为翻译官。但是由于这个岗位太闲,所以一般会把更多管理项目的权限分给这个工种让他们有事情做。但是一般的产品也就那回事。如果你去的企业有产品那一定要在大企业,出事了产品背锅,产品的管理不当。

后面的工种就不算太了解

  • 数据工程师 一般的库数据库工程师都在比较大的企业存在。

  • 大数据工程师/数据分析师 也就hadoop工程师,python机器学习工程师。

  • 运维工程师 也分两种,一种是一般企业的运维。不让开发碰product的管理者。属于中低级运维。 另一种是devops,属于高级运维。需要为企业编写一个高扩展框架的

大企业OR小企业

这个命题,也不用想太多了!!!!我的经历负责的告诉你,能选大企业就选大企业!小企业也不是不行,你得看老板,如果你的老板是雷军这种业绩大佬有大把资源的话,跟吧。

如果没有,90%的小企业都是脑袋一热,摸着石头过河。加班不是问题,问题你要加的有价值,能提升你个人思维的才叫加班,但是95%的企业属于赶工的无效加班。因为赶工怎么CP快就怎么CP,你根本学不到什么东西。你若想学习学到核心的东西,那前提必须这个领导者有思路有领导能力,能把东西落实!你见过乔布斯有屈服过吗?会改来改去吗?你遇到一个企业整天改了改去的话算了吧劝你三思。连华为某些部门都乱也存在屎山代码。你还想在小公司学到东西?大公司学的不单单是学习社交/资源/技术/做事风格。跟重要的是核心价值观。要不怎么有这么多阿里出来的“阿里卷王”。还有这个产品是如何推动到成功的过程。

必须阅读的书籍

书籍很多,关于语言类型的我就不推建。但是下面的书籍我是建议大家都去看的。因为都是底层的东西,也有一些是编码的格局思维。

放心下面的书籍你毕业后结合工作在慢慢看收益匪浅。没有5-7年你的工作经验你是体会不到的。慢慢读吧。

《算法导论》- 重理论

《编程之美》- 重实践

《Unix网络编程 ,《tcp/ip详解 卷一》- 给你在做架构的时候有一定的思路,也就是给你提供了一些方案而已。要不你以为安卓和华为互联怎么实现的?思路都在这里面。

《javascript高级程序设计》- 前端的同学懂得都懂,所有的面试题都出自这本八卦文。划重点,当然不排除65%谷歌自学/经验总结出来的人。

《现代操作系统》《程序员的自我修养》- 给你做底层的时候或者没想市场没有的功能的时候提供注意和方案使用的。

《设计模式:可复用面向对象软件的基础》,《重构 改善既有代码的设计》- 拒绝屎山代码的必看书籍,如果你做管理这两个可以让你更好的进行分工和系统设计,也是我最近文章一直强力推荐的。

《点石成金:访客至上的Web和移动可用性设计秘笈(原书第3版)》

《交互设计之路》- 更好的做产品,当然是更好的和不懂的产品经理/UI设计进行撕逼,有些艺术家的设计互交做死你自己!你需要有一定的理论推翻他们。或者创新一种新的互交,比如下一个AR互交你怎么设计呢?你回了自己可以创业。

《禅与摩托车维修艺术》- 一本非典型的适合程序员阅读的哲学书,霍金、乔布斯都曾推荐过。书中讲述作者和儿子 骑摩托车旅游路途所悟到的“禅”,其中最关键的就是“良质”。

《极客与团队》,《成为技术领导者》,《敏捷转型:打造VUCA时代的高效能组织》

这是我正在看的,还没看完但是感觉内容不错。

最后附上我微信读书一些书

image.png

image.png

算法练习

很多程序员都急于求成,往往忽视很多重要的东西。就是算法。 你们可以到刷刷题目,我刷得也不多也就刷了150道这么,希望在校的你们可以刷多点嘻嘻。我老了快要送外卖了哈哈哈加油喔年轻人。 leetcode-cn.com

题外话

如果你在校的话,建议把社交圈扩展一下!多点接触不同的行业。

因为很多情况下不是程序员自身想到要改变什么!而是你在某个行业遇到遇到了什么问题,可以用机器进行简化工作。这才有了程序员来做相关的工作。

如果你是一个技术宅的话,你家里有矿可以买一台3D打印和学学电路板编程!当然这个是你家里有矿的前提。硬件可以给你生活带来不一样的乐趣。

最后如果你还在学校的话~~我最终的建议你能找一个可以一起学习的女朋友!!!爱玩的女朋友变心很快,但是爱学习的女朋友你们能一起进步。虽然可能最后变心的是你。但如果没有那这种女朋友你不娶你就可惜了。