资讯详情

程序员如何让自己的技术能力突飞猛进?

最近在 Blink我发表了几篇小作文,讲述了我的学习方法。出乎意料的是,它变得流行起来。许多朋友根据他们困惑的个人情况在评论区咨询他们的学习方向。我实际上回答了数百个问题。我认为这是一件非常有意义的事情,所以我做了一篇文章的整合和延伸,以文章的形式发表,方便C站的朋友收集,鼓励大家不断突破技术事业。


一. 初学者如何自学?

世界上伟大的人才是孤独的。因此,对于初学者来说,在家自学时避免母亲的宝藏和社会人士是非常重要的。首先,他们不应该围绕家庭无尽的家庭事务,其次,他们不应该过度寻找朋友和朋友,留下持续的时间和精力。

大学计算机、软件、大数据等专业每年都会学习各种编程。事实上,这只符合考试,不符合编程规则。关键是专注于一种语言的持续学习,不断培养编程理念。假期梳理非常重要。你可以理解,掌握主流语言等于为自己创造一个好产品,这个好产品肯定会在社会上找到很多买家。重点:选择看好书,寻找优质源代码样例进行修改训练,尝试构建 Linux 环境。

  1. 希望在 C 除了系统层和硬件驱动的底层,未来的机遇领域是路线发展。 C 除了语言之父的程序设计外,还推荐 Unix 先进的环境编程和 Unix 了解网络编程 Unix/Linux 开发环境非常重要。

  2. 想走 Java 路线,Java 它是最常用的应用层编程语言,但基础必须是掌握面向对象,建议购买 Java 编程思想,静下心来,边看边练。除了寒暑假,坚持大学就看完了。这本书对初学者的编程和面向对象的思维非常有效。不要总想21天解决问题,欲速则毁灭。

  3. 想走 C 路线,C 既能和 C 除了游戏、图像、云计算和高性能组件外,和高性能组件 Web 应用也很精通一切,但是 C 学成很难,身边的朋友十年了 C 发展经验,不认为自己学会了。因此 C 适合有毅力的人,初学者建议不要看 C 父亲的程序设计从 C Prmier 入门,若能入行,回报颇丰。

  4. 如果你想走大数据路线,掌握分布式理论和数据库/NoSQL、Linux 通过服务端和网络通信,大数据技术非常重要 Java、Python、SQL 等语言来操作数据采集、清洗、存储和分析,这是应用需求;也需要监测、维护和优化分布式多节点的 Linux 系统,这是运维服务;它还将扩展到数据挖掘、机器学习和神经网络 AI 领域。学习大数据技术的学生必须首先认识到他们必须是杂食者,并推荐书籍:分布式系统的概念和设计TCP/IP 网络经典三卷,Linux Shell 命令和脚本,Java 编程思想、数据密集型计算、机器学习基础。学习顺序:网络知识-> Linux 知识->分布式知识->编程知识->数据技术知识->AI 算法知识。

二. Linux 怎么学

如果你想成为一名强大的程序员,最好的老师实际上是了解你的操作系统,选择正确的操作系统是进步的关键。对于程序员来说,学习和选择操作系统不是 Linux 莫属,从目前的大趋势来看,理解 Linux 是必备技能!

在长期的使用当中,你从 Linux 身体能理解 tcp/ip 协议、网络连接与通信、配置调参、文件与权限、shell 命令与编程、性能观测、流程服务与网络端口等,我从大学开始玩 Linux,蓝点 Linux、中软 Linux、Mandrive Linux、Debian Linux..,到现在二十年,一只老鸟。总之,程序员学习 Linux 操作系统,要经历三个阶段:

  1. 第一阶段,从会安装到图形玩家,也就是知道如何安装各种发行版本,比如:Debian、Ubuntu、CentOS、Redhat、Suse 等等。然后开始 Gnome,KDE,fvwm美化和应用各种桌面系统的体验。 Linux 应用和玩家级别。

  2. 在第二阶段,从图形到终端,有必要开始大量的云服务、数据库、安装、配置和运行应用服务,以实现自己 Linux 系统管理员级别。

  3. 第三阶段,从命令到编程,掌握了这个阶段 Linux 各种系统结构都可以完成 Linux 战略配置,了解很多 shell 这时,命令开始学习 shell 编程和 Python 编程,让 Linux 操作系统的所有问题都听你的调度和部署,然后你就进入了 Linux 黑客阶段。

三. 如何提高编程能力

要成为一名高水平的编程工匠,需要三个基本方面的努力:1。 2.阅读源代码,3.重构代码。

JAVA、Linux 这是我擅长的核心领域,但我不排除其他领域的技术书籍的学习和理解,包括:C/C 、C#、Windows 编程、Unix 网络编程、Python 等。这是专业程序员应该具备的基本素质。另外,如果编程技巧不好,你会觉得自己是个牛人,那你就错了。你需要更多地理解和理解软件工程。那么人月神话、敏捷发展、团队之美等书籍也需要在工程实践中多读、多体验、多理解。通常说一个将军无能,累死三军,并不是说将军的武术不够强,关键原因是将军总是赤膊上阵,不知道如何指挥,团队就像无头苍蝇飞,所以无论个人代码技能有多好,都不值得一个团队糟糕的开发项目。

当许多人只想到阅读源代码时 ctrl c/ctrl v 快速解决回家追王凯、金东的新剧,黑客潜力程序员在电脑前阅读大师的杰作,想从框架的源代码中找到更好的答案,所以很多人只能称之为代码农民。面对 github 电影《七宗罪》中的老侦探对图书馆的保安说:先生们,我永远不会明白。有这么多书,知识的世界很容易得到,但你呢?整晚打扑克牌。没关系,如果有心人能体会到奥秘,对人生的发展会有很大的好处。

我在 10 年前看完了 JSF/MyFaces 源代码80%,Springframework Core 当时,源代码源代码。 Rod Johnson 编程风格。去年把 Hadoop HDFS 的 Client 看了大部分部分。每当你读完这些源代码,你就会从相应的工作中受益匪浅,不仅是编程,还有快速提高你对软件架构的洞察力。

再来说说重构的重要性。当你接手一个项目一样 if if if ... else else else ..,当成千上万行嵌套的方法体出现在你的脑海成千上万的动物。请相信,这不是一个人的力量,而是无数像你这样的程序员在接后经历了同样的愤怒,不得不继续 if else 下去。这种烂代码是对程序员最大的羞辱。自己的代码总是有硬性要求,方法体永远不能超过 100 行,平均应该在 10-20 行之间。一种类可以重构更多的方法,解决不同方法的重复代码,甚至成为代码洁癖。

四. 如何变得优秀?

我们称赞精英人才的杰出事迹。本质上,他们的训练是反人类的。例如,面对打击,普通人的意识是逃避、恐惧和愤怒,但拳击运动员的意识是躲避和等待反击的机会;面对写作,普通人的思维是肤浅和分散的,但作家的思维是分层和系统的。要达到专业能力,必须在身体和思维上经历痛苦。程序员也是如此。如果他们想成为优秀的人,他们必须经历痛苦。所谓兴趣诞生,也只是能抚慰痛苦过程的吗啡。

那怎样才能成为一名优秀的程序员呢?我的观点是:不怕麻烦,代码洁癖,成为模仿者。

先说不怕麻烦,学编程等技术的过程,前面是崎岖的山路,平坦的道路不多,除非你选择放弃或安于一角。记得十几年前安装过 Debian Linux 只给基系统,需要配置核心和硬件参数,熟悉操作 apt-get,我深深地记得我第一次 Debian 我花了三天时间才成功安装,尤其是在晚上,我的头皮麻木了,但我成功地跑了起来 Gnome 之后,我知道了 Linux 的软件包体系都有什么了。

还有一次 2010 应急指挥系统的年度开发需要整合多少技术?Swing、EJB3、MQ、语音调度设备(CTI、IVR)、MQ、触摸屏、WAS、DB2.语音识别,CentOS,麻烦吧!半年多的时间是团队夜以继日的建设调试,当有一天看到身边的时候 10 个 IP 电话通过 API 当调用同时响起并组成会议时,当触摸屏的模拟电话状态顺从地跟随设备变化时,非常兴奋。

再说代码洁癖,我前面说过,我对自己的代码方法体要求极其严格,不能超过 100 行,平均 10-20 好吧,这不是写很多天赋,而是写一点,实现一点,重构一点。我现在写代码,只看 Log 输出,从不调试,许多功能代码是单元测试通过的,大量的测试能量留给集成环境的反复测试。

还有一次,我几年前负责的系统是从内网通过网闸实时取出外网 Kafka 当时团队使用的数据 Spring Streaming,海量数据下有 Bug,如果不稳定,我会重写数据采集和流式处理框架,性能相当稳定。就在我向客户炫耀的时候,客户也很了解,问我:你为什么不用? Spark 流量计算,费那么大劲?啊!太着急了,忘了!”

当你的编程能力提高到一定程度时,技术框架的开发自然会随需而生。

最后说说成为模仿者,黑客社区有句经典:寻找大师, 跟随大师, 模仿大师, 洞察大师, 成为大师。我最早盯上 Joshua Bloch,模仿 Collection 集合设计;后来偷学; Rod Johnson 早期 Spring 代码..,当你进入到大师的作品中时,你可能就是下个踩在巨人肩膀上的人。


本文由「守护石」CSDN/微信官方账号生产,转载请注明来源和作者

标签: 防水型接线箱连接器jsf

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司