一、找准潮流和风口
通过笔者对招聘信息的统计和查阅相关资料可知,程序员是高薪热门职业之一,不论从工资上还是招聘数量上,程序员都有很大的优势,月薪上万基本上刚起步,需求之多也是长期占据首位。
掌握什么语言才能成为高新程序员呐?
1. 编程语言的选择
流行语言有以下几种
(1) Java
可以说是目前使用最多最热门的语言,这和移动设备的崛起和应用有关,大量的手机、平板上,Java几乎是开发的王者。
(2) C/C++
PC机上商业软件开发的王者,大部分的操作系统,如Windows、Linux,应用软件如office等都是用C++开发的。
嵌入式设备开发语言的首选,一般嵌入式设备资源有限,对效率要求很高,效率最高的是汇编,但是由于汇编的复杂性,只有在必要的关键位置使用少量的汇编代码,大部分使用的是C,C兼有效率高、编写和维护比较容易的特点,成为嵌入开发的主力军。
(3) Python
随着人工智能的不断升温,Python逐渐火热起来,它的特点是容易入门,广泛的兼容性,以及包含常用的人工智能算法。对入门的青少年来说比较容易上手,因此有很多院校对青少年、儿童开始了Python编程课程的训练。对专业人工智能算法工程师来说,实现算法比较容易,所以得到了广泛的关注。
当然除此之外VB等其他语言也有少量的使用者,但是目前主流的开发语言基本上就是上面三者。
2. 编程方向的选择
(1) 云、大数据方向
由于云的普及,大概70-80%的规模企业使用了云技术,阿里云占据市场老大的位置,其次百度云。云的运用为大数据的存储、分析、运用开辟了战场,因此毫无疑问,数据库编程以及云成为了热门应用。
(2) AI智能算法
阿尔法狗,自动人工驾驶相信没有几个人不知道,因此在人工智能,机器人方面,需要大量的人工智能算法工程师,其实,就是非常专业的数学家,程序只是实现算法的工具,核心还是智能算法。
(3) 嵌入式开发
不论是手机,平板,还是机器人,其实都可以归类为嵌入式设备,什么是嵌入式开发呐?简单的来说,
嵌入式:软硬件可定制的特殊计算机
就是说这个计算机是为特殊行业和应用定制的,比如考勤机、路由器,与通用计算机不同,他的硬件和软件都需要专门的开发。
由于嵌入式设备的数量之大,应用之广泛,嵌入式开发工程师需求极其庞大,嵌入式开发又分为了两个主要方向,嵌入式软件和嵌入式硬件。
二、熟读经典
编程方向选好以后,选择一门语言来精通,我把自己10年多编程学习经验总结如下:
1. 熟读经典
一般由于一些原因,各个高校都喜欢用自己编的教材,然后是国内知名高校的教材,比如清华大学和同济大学的,其实你大可不必拘泥于教材,可以博览群书,往往最优秀的是国外的经典名著。
(1) C语言经典
C Prime Plus(中文第六版)
C语言程序设计(二级教程)
(2) Python经典
Python编程-从入门到实践
(3) Java经典
Java编程思想
Java核心技术
2. 熟记标准用法和典型例程
(1) 熟记常用语法
常用的关键字、函数的使用方法要认真理解、熟记。
(2) 熟记经典例程
通过经典例程,去学习关键语法和函数,经典程序应烂熟于心。
(3) 善于归纳总结(记笔记)
对于学习的内容要善于归纳总结,把一些常用的语法,数据、函数等归类整理成表格,对于不常用的功能、函数要准备一个手册,一旦忘记或者不知道用法的时候方便查找。
三、夯实基础
俗话说:基础不牢,地动山摇!
对于程序员来说,不但需要精通程序本身,还要对计算机基本原理、硬件、操作系统、网络等有很深的造诣,否则学起来必定磕磕绊绊,难成高手!笔者推荐几本关于计算机基础的著作。
计算机组成与设计-硬件/软件接口
深入理解计算机系统
四、 知行合一
对于任何一门学科来说,实践都是极其重要的,实践是检验真理的唯一办法,知行合一,简明而深刻的揭示了学习方法的本质。
1. 多练习编程
通过多练习,才能熟悉掌握基本的语法和用法,熟能生巧。
2. 程序高手必定是调试高手
真正的高手都是调试程序的高手,没有不存在问题的程序,不论是程序员还是工程师,天生就是为了解决问题的,因此不懂得调试的程序员,那算不上真正的程序员。
对于C程序开发来说,强烈建议新手使用VC2010及更高的版本,他的调试器是Windows下最有力最方便的调试工具,因为初学者对语法、数据、流程都陌生,出了问题往往束手无策,学习编程最好的办法就是通过调试,特别是单步运行功能,数据观察功能。篇幅所限,我们后续会推出专题文章,专门讲述程序调试。
3. 多做实验验证
由于程序的复杂性,教程很难面面俱到,讲出所有的情况和应用,这时候遇到问题怎么办,或者对教材的一些说法产生疑问怎么办,这时候就需要你去通过实验检验教材说法的准确性,以及未知领域的疑惑。实验证明是什么样就是什么样,不要迷信权威和经典。
4. 多开发具有实际用途的程序
学为所用,这才是根本,一切的学习就是为了开发有价值的程序,我们最后只有走出这一步才算是真正的程序员。比如真实商业程序的开发,还涉及到程序的可靠性、加密、维护和升级等,这些一般的教材很难涉及。只有开发实际的程序,才能体现编程能力,才能体现程序员的价值。
五、 系统架构
当由一个小程序猿逐步成长为项目经理的时候,就要学会掌握系统性的方法,把大型复杂程序,分解成小的模块,然后分发给其它程序员,最后组合、编译成大程序,要学会设计程序的总体架构,优化性能,组织和协调也是必不可少的技能。
六、专业是根本
程序只是工具,专业技术才是根本,譬如对于人工智能来说,掌握Python程序只是第一步,隐藏在程序后面的数学造诣才是根本,我们不过是用程序把数学算法表示出来,加以运用,因此对于人工智能,根本的是智能原理和算法。
对于云和大数据来书,数据库、网路、服务器以及存储设备才是根本
对于嵌入式开发来说,更为复杂,下面就以嵌入式开发来书名所涉及的专业和知识点
嵌入式软件开发的主要内容(以ARM开发为例):
ARM体系结构与编程(裸机程序设计,主要是熟悉寄存器、IO、等硬件的编程和使用,以汇编为主)
引导程序(BootLoader等,前期通过引导程序下载、烧写程序到芯片,调试程序等,后期引导操作系统的运行,BootLoader通常第一阶段为汇编,其余为C)
操作系统(Linux、VxWorks等,操作系统的原理、工作机制、多线程、线程间通讯等)
应用软件开发(QT、驱动开发、数据库等)
嵌入式硬件开发主要内容:
原理设计及其仿真(模拟电路、数字电路、射频电路等,EDA工具(multisim、Proteus、cadence等))
电路板设计(电磁兼容、高速电路信号完整性分析与仿真、电源的完整性分析与真、元器件、焊接、结构和工艺、EDA工具(Altium Designer、PADS、cadence等))
如果你觉得此文章很好,请分享给你的朋友,如果你觉得有不当之处,也请你积极批评指正!
欢迎计算机爱好,电子爱好者,有志于从事编程或者嵌入式开发的朋友关注我的头条号!
头条号:非凡创客
说明:本文为原创,如有转载或者用于其它商业用途,须取得作者授权