行业资讯

作者:

向阳生涯

发布日期

2024-01-05 13:00:38

阅读量

0
您当前的位置:首页 > 行业资讯

程序员改怎么做职业规划

  如果你是程序员,有想过今后的路该怎么走、如何发展、技术怎样提高?下面给出一些个人建议,希望对同为程序猿的你能有促进作用。

  一、程序员应该打好基础

  1. 现在开发工具众多、语言泛滥,经常听人说”不学C\C++神马都是浮云”、”C\C++才是万王之王”,C\C++就真比PHP、Lua、AS、JAVA牛吗?

  其实不在于语言本身,而在于C\C++依附的平台。因为最靠近操作系统,所以能发挥其它语言不具有的性能优势,而且很多数据结构、算法、特殊功能类,C\C++是不提供的,需要自己实现。这时就需要自己去温习”数据结构”、”算法”、”TCP/IP”、”操作系统原理”、”编译原理”等这些知识。正因为如此,我们学习的东西被沉淀下来,也正因如此,C\C++经过定制的功能比封装好的功能性能高。

  我上大学做项目时,用的是.net平台C#语言, 因为我本性好专研,老师都是把需要研究、比较难的问题交给我。但C#无论是性能和功能都是都是无法跟C\C++比的,记得当时是要做一个”远程控制”软件,配置IP和端口后需要连接动态生成客户端程序(木马),但C#是不提供这个功能的。这也是我工作后转为C\C++程序员的原因,碰巧也是开发远程控制软件。刚开始写出来的程序偶尔会莫名奇妙的崩溃,但经过两个月和更长的时候后,我掌握了C\C++。在此要感谢我工作时的指导老师翁跃龙,没有他我的路不会这么平坦,他教我的不仅仅是技术,更多的是解决问题得思路和做人。

  2. 有些人会说大学学的东西是肤浅的,是没有用的。想想看,在学校的时候我也经常这么想,但出来后才知道这些东西有多么重要。不过大学学得再扎实,出来后仍然是需要再温习过的。因为上学毕竟实践少,所学不能所用,计算机是个应用驱动的学科。我们再来看“计算机考研”专业课考的什么(这里并不是说考研就一定好),”数据结构”、”计算机组成原理”、”操作系统”、”计算机网络”。”数据结构”、”计算机组成原理”这两门课程摆在前面,可见其重要性,分别是软件和硬件最重要的两门基础课。我不相信不学好”数据结构”能够把性能优化做得很好。若说自己学好了,能不看书、不查资料,说出”B+树、B-数的应用和区别”、”KMP为什么能快速匹配字符串”、”快速排序在什么情况会蜕变为o(n^2)”吗?

  我也不相信不学透”计算机组成原理”能搞通汇编和内核,不知道”CPU和I/O的交互过程”、”指令的执行通路”、”CPU运算器的工作原理”,如何写出高效的汇编代码?如何弄清楚内核中”中断”、”GDT”、”IDT”这些概念,实模式保护模式如何切换?”操作系统”和”计算机网络”则是两门非常重要的支撑学科,信号量为什么是最快的同步方式、线程调度比进程调度快、为什么要做内存缓冲池,这些都是来自”操作系统”。而”计算机网络”主要是讲述TCP/IP的,为什么德问”对于一个具有几百万粉丝的用户,数据如何实时投递到所有用户?”要使用多播的方式解决、”如何计算出C/S单向的延迟?”发送ICMP包测量,这些都是来自它。

  我们大学学的课程经过多少国内外知名学者专家研究过的,所以计算机理论课是基础,是解决问题的根源。”算法分析与设计”是”数据结构”的延伸,Divide Conque、贪心、动态规划对于程序算法的优化有很大的指导意义。同样,”计算机体系结构”也是”计算机组成原理”的拓展。其次,”编译原理”、”数据库”、”软件工程”等学科的重要性也不言自白。

  二、实践、理论、再实践

  作为程序员的我们,满足于实现一个程序功能的快感,得意于从网上下载别人的代码加到自己的程序中,陶醉于自己写了上百万行代码。有想过自己是在创造吗,还是装配车间的技术工人。日趋成熟的开发工具,逐步把有丰富想象力的我们沦为奴隶。从网上下载个压缩库就用着、成熟的加密算法直接使了、包装好的类库就include。为何不探究其算法实现、性能优化、底层机制。有人会说很”难”啊!究竟是难,还是掌握的知识不够,还是理论没有达到一定高度。

–––– 相关内容

推荐阅读

2024-01-05

职业规划的职业类型有哪些

职业规划的职业类型有哪些

向阳生涯
Read More

2024-01-05

成为职业规划师要注意什么

职业规划师是近些年来逐步在国内兴起的新职业。在就业竞争激烈的社会背景下

向阳生涯
Read More

2024-01-05

职业规划是什么?

职业规划是立足于通过自身努力可实现的事实依据,并非只是凭空的美丽幻想或不

向阳生涯
Read More