一个程序员的成长历程

9bfcf678ea52775fa24fa1f75eff2096.png

本文预计阅读时间 4 分钟。

今天介绍一下学习心得,分四个阶段,每个阶段的想法都有一些变化。

培养兴趣

大一开始学编程语言,老师上课留了一个在线测评的网址,算是作业,写完程序提交之后,如果对了就会在后边得到一个100。感觉很好玩。于是把上面的题都做完了。又去做隔壁班的。基本有的题一下没想出来,吃饭走路都在想,想着想着就想出来了。

这个阶段主要学学编程语言,培养一下编程手感和兴趣,熟悉计算机的语言和逻辑,如何把一个现实生活中的问题用代码抽象出来,让计算机可以帮助人去工作。有一次写程序遇到一个很奇怪的现象,我一度怀疑C语言有问题,去问老师,老师指出我少写个括号。。。

培养逻辑思维

这一阶段主要是逻辑思维的培养,给你一个问题,让你想解决办法,通常和语言、框架没有什么关系。也不需要写很多模块。我叫这个阶段信息化,即如何将一个现实世界的问题用代码表述出来并提供解决方法。这一步也是基础,网上各种在线测评都可以用来练手。

在这个过程中,主要开始锻炼算法能力,主要是要求写一个函数,告诉你输入是什么,预期的输出是什么,你把这个函数填好。而为了填好这个函数,需要学习大量的算法和数据结构,而且要多编程,编程能力还是一门熟练工,有的题目可能想一想觉得很简单,但是落到代码上你会发现有很多坑。

做应用软件

应用软件是给小白用户用的,比如淘宝、京东之类的。

在很长一段时间里,我以为编程或者去实习兼职就是别人定好输入输出,我去填函数内容。只需要培养逻辑思维能力就可以了。其实不是。

这个阶段需要熟悉如何在系统软件上进行开发,这是大部分公司需要的编程人员的基本技能。公司追求效益,就是用最快的方式解决问题,而使用系统软件搭建业务系统是最快,也是最高效的方式。可以把系统软件当做砖块,你需要做的就是搬砖,设计砖如何摆。

比如在 MySQL 数据库上开发一个学籍管理系统,企业人员管理系统,等等。MySQL 数据库就是系统软件,这些管理系统就是应用软件。

实际开发应用软件会遇到各种问题,比如系统软件的搭建,程序员装系统软件一般不是一键安装,而是需要各种配置,软件都是人开发的,需要配置哪些东西也都是别人定的,这就需要看软件的部署文档。

装完系统软件之后,第一个 HelloWorld 程序也是关键的一步,系统软件的 HelloWorld 和 c 语言的 HelloWorld 不一样,不是一个输出就搞定了,比如 MapReduce 的 HelloWorld 是统计词频。系统软件的 HelloWorld 一般需要理解系统软件的运行原理和编程框架,只有知道这些东西才能正确的编程。

经过这个阶段的锻炼,基本的业务逻辑就没啥问题了。

做系统软件

系统软件是给程序员用的,比如操作系统、数据库、计算框架、消息队列等等。你可能开始听不懂了,因为这些东西用户看不到,但是要知道,你用到的每一个软件,都是通过这些系统软件搭起来的。

做系统软件又是一个层次,系统软件是基础,做不好就容易崩,而且相比应用软件,系统软件代码量大,逻辑复杂,需要深厚的技术积累。而做系统软件的过程也是磨练技术,探索技术方案的一个好机会,你可以出两个方案,理论评估一下,再实际实现对比性能,最后选择一个“最佳”方案。

系统中很难有完美的东西,不同的设计适用的场景不一样,因此也给了做系统软件的人一条活路,如果只有一种场景,那只有一波人能活下来了。

总结

一个程序员,从兴趣培养,学习语言开始,再到数据结构和算法的编程能力锻炼,基本就满足了本科的要求。而公司还要求能够做应用软件,需要学会在系统软件上进行开发。而开发系统软件就是程序员的最高技术目标了。在任何阶段,数据结构算法知识都是基础,要想做系统软件,深厚的编程功底是必须的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值