新手入门该学什么编程语言?

在这里插入图片描述
无论你是出于兴趣,还是打算找份工作,这个文章都希望给大家带来一些帮助。

鹿川原创,转载请保留作者和原文地址。原文地址: https://varstr.net/getting-start/

热爱的人不迷茫

无论这个文章给出任何的建议,其实都不如你真正的热爱,如果你就是热爱硬件,那么去学习汇编是顺其自然的事情。

千金难买我乐意。

当然,如果你清楚的知道自己热爱什么,那么也不会纠结到来看这个文章了。

本末倒置

其实我们在学习编程的时候,经常会出现一个本末倒置的现象。

就是我先学一门语言,然后再去用它来做东西。

看起来似乎很合理,但其实你最后学完了发现,你根本不知道拿它来做什么。

并且,你也很难找到心仪的工作。

如果你没有做过东西,招聘的公司也很难看出你的真正实力。

逆向思维

无论你是出自兴趣爱好,还是为了找一份工作。

其实应该用逆向思维来考虑这件事。先看结果,再推导路线。

当你想要开发一个网站的话,那么肯定不能从C语言学起,因为C语言很少被拿来开发网站,而一般你开发网站用的东西反而是C语言开发的。它算是爷爷辈的语言。

C语言能做这件事,但是做的很吃力,所以大家开发出了PHP/Java/ASP.NET等等

同理,如果你想找工作,那么你应聘的公司也要面临同样的选择。

他们一定不会招聘一个C语言程序员来开发网站。

成本优先

继续前面的话题,无论是公司做东西还是个人开发东西,其实都是先有一个需求开始。

如果你是学生或者个人开发者,那么把自己想象成老板和程序员的结合体。

当我们有了需求,其实有很多的方案,但是这些方案有着不同的成本。

通过对比,往往会选择市面上最容易完成需求的编程语言来制作。

同时,还需要考虑会这项技术的程序员多不多,工资贵不贵。

如果你自己亲自来,那么就要考虑这门语言好不好学,学习曲线和时间。

其实成本的考量大部分可以以时间作为标准。

时间意味着公司花费最少的人力成本(工资),完成了这件事。

你作为老板,也肯定会这么选择。

但是就算一个语言非常有效率,也需要会使用它的人,这就是人才供应。

尽管我们可能分析完觉得,GO语言是技术层面的最优选择,但是到了实际招聘的时候。

却往往招聘的是PHP程序员。

这里面的有几个逻辑:

1,如果会GO语言的程序员太少,我招不到,或者工资太贵。

2,如果招一个不会GO语言的程序员,我得花时间等他学,还得开给他工资

3,如果这个程序员学会了,也做的差不多了,辞职了,我怎么快速招一个人顶替他呢?

站在老板的角度,这个答案显而易见。

所以PHP是世界上最好的语言。

平台的规则

如果你想做一个独立的程序或者服务,用什么语言基于上述的情况决定就好了。

但是如果你想上线到某些平台,那么你的自由度就少了很多。

举例来说,如果你开发安卓的APP,那么就不得不使用Java。虽然还可以用Kotlin,或者其他的编程语言。但众所周知,安卓的主要开发语言还是Java。

谷歌帮你做出了选择,而且你必须接受,尽管谷歌在选择这门语言之前也考虑到了Java程序员很多很多,蹭蹭热度,所以才没有一意孤行的选择汇编语言。

也算是很仁慈了。

技术的世界里面存在很多巨头,它们也并不总是按照“最优解“的方式来出牌。

它们喜欢“标准”。

标准是什么?标准就是权力。

因为Java背后的公司是甲骨文,谷歌想要让Java实现某些修改(特性),就必须得求着甲骨文,甲骨文说不行,我不修改,那谷歌只能吃瘪。

所以谷歌以更好用的名义发明了Kotlin,实时上也确实减少了开发时间。

但是Kotlin是谷歌自己的,所以它可以为所欲为。

当然了,谷歌可不止造了Kotlin一个轮子,比如Go语言,比如Dart,等等吧。

推广的都不算特别的顺利,这就引出了我们的下一个话题。

求新还是守旧

我们应该活在当下,还是压一波未来呢?

当一个语言应用的越广泛,其实缺点暴露的越多,或者有其他新的需求出现,而这个语言满足新需求会很吃力,如果打补丁都解决不了。

很多大公司就会重新造个轮子,取代前者。

所以我们会看到技术世界的新东西层出不穷,程序员叫苦不迭,一个语言学不不了几年,就得去学新玩意。

其实大可不必焦虑。

还是回到一开始的情况,你的需求是什么?

如果你的需求用Python可以做,就真的没必要学习C语言。

即便新的东西再多,把东西做出来,永远比做到极致重要的多。

极致是很美好的东西,但是你并不见得需要。

直接告诉我吧

其实你发现,看到这里,你还是没搞明白,先从哪个语言学起,其实我故意不去说的。

我完全可以做几个小时功课,去调查招聘网站的人才需求,再结合搜索引擎关键词挖掘,再加上各类编程语言热门程度排名。

得出一个结果,比如说你得学Javascript,或者Python。

但这其实都不是一个最好的选择,因为我并不知道你脑海里最想做的东西是什么。

你是想做网站,还是想做APP,还是想做开源软件。

如果你还不知道做什么,那么我建议你先想想。

为什么这件事比编程语言重要。爱因斯坦的好朋友鲁迅曾说过,兴趣是最好的老师。

其实这个文章想探讨的是,你先发现你想做的东西,然后再去学语言。

如果你只是想找个工作混口饭吃,那么招聘网站查看职位最多的需求,就是你的最好选择。

如果你看到这里,还愿意继续听我唠叨。

那么我们接下来探讨一个更深的话题。

内功要不要练

我要不要先学CS(计算机科学),从认识电子开始,然后二进制,汇编语言,C语言,然后数据结构,然后算法,操作系统原理,TCP/IP网络编程,一步一个脚印。

这当然是没问题的,这条路走下来你一定很牛逼。

毕竟,很多程序员,知其然,而不知其所以然。

如果你是个爱打破沙锅问到底的性格,就想知道在电脑中显示一个字,最后在电子层面是什么表现。

学它,马上。

但是内功是需要时间的,没有几年的投入,你可能根本写不出像样的东西。

然后你发现你写出的东西,早就被人实现的更好了,备受打击。

最早一批程序员,从大型计算机开始,用二进制打孔纸写程序,到后来发明C语言,然后PHP。

其实这一代代人在做一件事。

就是让编程变的更“高级”,这个“高级”其实是为了大的工程而准备的,让无数的程序员在一起协作,开发面向用户的软件或服务,规模越做越大,比如像谷歌那样。

现在的每一种高级语言,不管是JAVA还是PHP,都是经过无数年的积累而造就的。

是一个坑一个坑的填起来的。

先从欣赏前辈的成果开始,然后再回到起点,追根溯源,这是一个很好的方式。但是直接享受这样的成果,站在巨人的肩膀上,也是一样的。

也许在国内,太多的人都因为功利性的原因,选择了在应用层做事情,很少有潜心在底层研究的人。

比如中国为什么没有自己的操作系统等灵魂拷问,确实让人觉得尴尬。

这其中的原因十分复杂,主要是因为生态,用户习惯和版权意识等原因,所以很多国产操作系统都是直接拿Linux来做,就是借用了这个生态。

但是Linux下不管是玩游戏还是工作,对普通人来说都非常不方便,难以普及。

其实实现一个操作系统并不难,难在其他人或公司愿意去给你的生态去贡献。

最后的总结

为了你想要做的东西,而去学习,是一件即开心,又有成就感的事情。

人因事显,无论你多么有才华,最终都要做出大家能看到的东西,别人才能认可你。

学习编程也是同样的道理,如果你没有亲身做过这个东西,就不算真正的学会。

就算你做出的东西,最后只有很少的人用,但是起码你学到了,成长了。

这就够了,有些东西,过程远比结果重要。

与大家共勉。

加油。

  • 10
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值