最近有些朋友私聊我一些问题,其中有个问题比较经典,就是我想敲代码做程序员,但是不懂往哪个方向发展更适合自己,如果什么都学的话,精力又不够,比较迷茫,不急,听光临慢慢来分析一下。大家知道目前IT行业很火热,程序员的薪资也是水涨船高,大厂的程序员年薪30W更是家常便饭,那么今天我们就来聊聊程序员的发展方向和编程语言,看看我们适不适合做程序员以及做了程序员有哪些方向可以选择。
程序员主要分为软件工程师和硬件工程师,今天我们主要讨论的是软件方向的。软件开发,即不需要和硬件打交道,类似模电、数电、FPGA、PCB、原理图之类的知识是不要求掌握的,当然掌握了更好,所谓技多不压身,而且能更透彻的了解计算机的原理。所以说选择做软件程序员的同学是不用担心自己的物理、电路方面知识掌握不够扎实而影响编程的。
至于对数学的要求高不高呢?其实正规的公司都有专门的算法工程师负责比较高深的算法接口开发。我们负责业务线上的应用开发和后端开发是不需要掌握很深的数学知识的。简单来说,只要高考的数学不是太差,逻辑思维过得去就没问题。
软件程序员又可以细分为很多方向,广义讲有前端方向、后端方向。
前端通俗来讲就是页面,主要用于展示和提供给用户操作的界面,比如淘宝的界面,上面展示的衣服、鞋子,家居用品的图片、以及加入购物车的按钮等,大都是我们前端开发同事负责的,前端界面一般在浏览器上展示。
后端主要是响应前端的操作,比如用户输入账号和密码,点击登录,这时候后端就会响应这个登录点击的动作,调起数据库,验证传过来的账号和密码是否匹配,逻辑上的业务处理基本是我们后端同事负责的。这里讨论的前端和后端以BS架构为主,主要运行在Linux操作系统上,B即浏览器(Browser),S即服务端(Server)。
还有一种架构称为CS架构,C即客户端(Client),S即服务端(Server),CS架构主要运用在Windows操作系统上,我们常用的电脑软件,比如英雄联盟客户端、Wps,QQ音乐等,这种通常称为PC软件,安装包以exe为后缀,安装后运行在Windows上。因为PC软件要运行,需要用户在电脑上安装,所以使用起来没BS架构方便,因为在联网的情况下,我们在浏览器上输入一串url(链接),就可以快速访问到需要的界面。所以目前市场上,BS方向的业务比CS更多,工作岗位也更多。
下面用一张图来归纳一下软件开发方向的分类和他们对应的编程语言:
常用编程语言归纳如下:
大家可以对比一下,根据自己感兴趣的方向和编程语言进行选择。如果对学习C的指针感到很迷茫的朋友并且对后端开发比较感兴趣的话,可以看看Java语言,因为它不仅没有指针,而且在web后端方向很火,工作岗位超级多,工资也很高。
如果对指针的灵活使用很感兴趣,并且追求效率的朋友可以选择C++,俗话说得好,学会C++,走遍天下都不怕。因为掌握了c++再去学其他语言基本上是触类旁通的,目前C++在计算机视觉和音视频领域属于毫无争议的首席位置,工资也是很高的。
如果是女生,可以选择做前端开发,相对后端而已比较轻松点,压力没那么大,工资待遇也不错。当然还有测试开发,测试主要分为功能测试和性能测试,压力也很小,如果掌握一些脚本语言,比如python、shell就更吃香了。
相信大家更关心的还是工资收入,目前以广州为例:我待过的几个公司,有上市公司,互联网公司,科创板上市公司以及身边朋友、网友提供的数据来分析。1-3年初级程序员的薪资一般是6K-15K。3-5年的中级程序员一般是15K-25K。至于5-10年的高级程序员,还是需要看能力和业务经验,很多人都停留在了25K这个阶段。不过加上年终奖也足够养家糊口了。
其实无论选择哪门语言,最重要的还是编程思想,设计模式和数据结构,只有基础打牢了,才能平地起高楼,最后才能拿到满意的薪资。
欢迎大家私信和我交流,