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

鹿川原创,转载请保留作者和原文地址。原文地址: 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下不管是玩游戏还是工作,对普通人来说都非常不方便,难以普及。

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

最后的总结

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

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

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

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

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

与大家共勉。

加油。

新手入门该学什么编程语言?相关推荐

  1. zbrush常用笔刷_【建模】新手入门必学,ZBrush中常用笔刷简介!

    原标题:[建模]新手入门必学,ZBrush中常用笔刷简介! 单击左托盘的笔刷图标,弹出一个笔刷库,其中有许多常用笔刷,这也是许多初学者所头疼的问题,zbrush的笔刷非常多,而且功能很强大,好多朋友不 ...

  2. 数控机床坐标的介绍,通俗易懂,新手入门必学!

    数控机床坐标的介绍,通俗易懂,新手入门必学! 1.机床坐标系的定义 在数控机床上加工零件,机床的动作是由数控系统发出的指令来控制的.为了确定机床的运动方向和移动距离,就要在机床上建立一个坐标系,这个坐 ...

  3. 新手如何快速学Python编程语言?

    Python是一门语法简洁.功能强大.上手简单的计算机编程语言,根据TIOBE最新排名,Python已超越C#,与Java,C,C++成为全球4大流行语言之一. Python编程语言其应用广泛,在人工 ...

  4. 不思议迷宫c语言基础,不思议迷宫——新手入门所学

    本人玩游戏这个游戏有一段时间了,现在只得爬到到德古拉城堡 ,史莱姆累计今天也只有23个,是个实实在在的新手. 不过呢,也因为同是新手,对新手也更有些发言权吧,大家可以互相交流, 接下来谈一下我这段时间 ...

  5. 软件测试新手入门该学什么?最全整理,照着学就对了

    随着软件开发行业的日益成熟,IT岗位的需求也越来越大,同时薪资也逐年增长中,对于想要进入IT行业却缺少基础想要转行的小伙伴们,入门软件测试是最佳的途径之一. 但很多想要转行的小伙伴对该行业都是一片空白 ...

  6. 全网最全的软件测试基础知识整理(新手入门必学)

    目录 1.什么是软件 2.软件工程的内容 3.软件的生命周期 4.什么是软件测试 5.软件测试的方法 6.软件测试阶段有哪些任务 7.测试的原则 8.软件测试工作流程图 9.自动化测试 10.自动化测 ...

  7. 新手入门:学RAID从饮水机开始(图)

    对于网管来讲,如何有效保证服务器上数据的安全呢?用多个硬盘建立RAID恐怕是最普遍的手段了.今天就由笔者通过一问一答的方式为各位IT168的读者介绍RAID相关的知识. 问题1:什么是RAID?它是由 ...

  8. 计算机入门新人必学,电脑新手入门教程 让你快速上手

    随着互联网时代的快速发展,电脑发展也相当的成熟,新手学电脑可以快速入门,是每个新手梦寐以求的事情,但是不会所有人都可以快速上手,最近很多用户咨询我关于零基础学电脑先学什么,或者是电脑新手入门必学什么东 ...

  9. 51单片机的新手入门前所有疑问整理

    51单片机的新手入门前所有疑问整理 ///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加我地球呺也能领取哦.最近比较闲 ...

最新文章

  1. CRF++使用简介(windows下非接口)
  2. c++修复工具_几款平价又好用的U盘修复工具分享
  3. Android深度探索(卷1)HAL与驱动开发 读书笔记(第四章)
  4. docker安装pocbox(漏洞测试验证辅助平台)
  5. java中trim_java中string.trim()函数的作用实例及源码
  6. Origin绘制双Y或双X折线图(不同坐标)
  7. webdriver高级应用- 操作日期控件
  8. DOM 精通了?请问 Node 和 Element 有何区别?
  9. python bytes_Python每天必学之bytes字节
  10. 大学中计算机考查课不及格怎么办,大学体测不及格怎么办 有哪些补救方法
  11. SpringBoot读取配置文件
  12. 10本Java架构师必读书籍
  13. 毕业设计 - 题目:基于深度学习的中文汉字识别 - 深度学习 卷积神经网络 机器视觉 OCR
  14. sympy的dsolve函数
  15. iOS 苹果登录(第三方登录)
  16. 【冬瓜哥归来】传统存储老矣,新兴存储能当大任否?
  17. 程开甲院士和他的TFDC模型
  18. PTA L1-088 静静的推荐
  19. 在python中设置静态变量
  20. 如何做好描述统计分析?

热门文章

  1. 狮航发生大规模数据泄露,涉及 3500 万条乘客记录
  2. 开放式思维,如MBA等(商学院,教育,进阶)
  3. 华为防火墙上gre vpn的配置
  4. 2023年国家开放大学跟成人高考哪个好?区别是什么?启程别告诉你
  5. 易游验证怎么配置?易游验证怎么使用!!
  6. 《操作系统》知识框架整理
  7. 前缀、中缀、后缀表达式归纳
  8. 电子商务基础知识笔记
  9. 通过js实现在线计算器
  10. 【django项目后台开发】数据统计——用户总数统计、日增用户数统计、日活跃用户统计(3)