那些编程水平很高的程序员是怎么练成的?

2024-01-21 11:48

本文主要是介绍那些编程水平很高的程序员是怎么练成的?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

靠自学和培训班,程序员顶多只能达到能勉强糊口的程度。靠做增删改查业务提升经验的程序员,收入只能勉强达到中等水平,而且到了30岁就会被毕业生所顶替。

    要达到水平很高的程序员,第一要找能提供优质实践机会的大厂,第二要在诸如高并发或机器学习的项目里多解决实际问题,第三还要不断跳槽,不断地找更优质的平台和更优质的项目机会。

    接下来说下成为高水平程序员的流程,顺便提些中间可能会遇到的发展误区。

    在校生,或者是培训班的程序员,哪怕学得再多,学习阶段接触的项目看上去再高大上,只要没有项目实践机会,这些程序员基本没有价值,因为学习项目和实际做的项目差距很大,而且如果学成以后有三个月的时间不去软件公司,那么学到的技能很快就会忘记。所以这个阶段的程序员应当尽快找打一份工作,当然如果直接找到大厂工作最好,如果没有,别顾工资,也别看公司大小,尽快找到一份能接触到真实开发项目的工作机会。

    在工作中接触到编程技术后,你就会发现之前学的技术很多是用不到的,或者精心学的语法或框架甚至项目里不是这样做的。这和学习无关,哪怕当时学得再好也会遇到这类问题,毕竟学习升级到实践总会有个过程。

    这时,项目需要的技术才是你真正要学的。我这里不给出详细的技术,因为对没有实践机会的程序员来说,这没有意义,而对已经开始做项目的程序员来说,这方面的体会一定比我还深,也不需要我说。在这个阶段,甚至通过一周做项目提升的程度要比学习阶段一个月提升的还要多。

    但如果程序员仅仅停留于此,可能会非常熟悉本公司的业务,凭此能在本公司混得风生水起,但技术上可能仅仅停留在增删改查。由于在大多数小公司里,未必能接触到高并发分布式,或大数据,或机器学习或深度学习之类的高级技能,所以如果在小公司呆就了,可能接触到的也就是增删改查的技术。

    这种技术不值钱,任何一个毕业生顶多通过半年就能掌握。所以此类程序员社会上会有很多,能力上顶多成为初级程序员,哪怕能力是在初级程序员阶段的天花板,但如果仅仅会增删改查,也只能是叫初级程序员。

    我见过太多的初级程序员,在30岁之后,只能在多个小公司之间辗转,工资也就维持中等水平,或者工资比毕业生还低。为了能从初级程序员提升到高级程序员,办法只有一个,进大厂,或者进独角兽企业之类的好一点的平台,因为大多数小公司只能提供增删改查的项目实践机会。

    怎么进大厂:背面试题,或者按大厂的面试机会,好好准备简历上的项目,同时准备大厂面试时需要的项目说辞和技术说辞。这个阶段是很难的,因为平时只做增删改查业务的程序员,很难在项目中挖掘出分布式组件等技术亮点,而且大厂面试官眼睛很毒,只要通过三言两语就能甄别出求职者是真有值钱技术的项目经验还是只会说。

    说句题外话,进大厂要早。虽然现在有很多所谓的面试秘籍,或者面试项目,其实大厂面试官通过提问,一定能甄别出哪些没相关项目经验,但靠所谓面试技巧发挥的程序员。

这点大家别有侥幸心理,本人在大厂做了若干年技术面试官,哪怕求职者之前背了太多的题,只要求职者没在项目里用过技术,这一问就能问出。但比如求职者比较年轻,比如25岁到27岁,面试官会在看穿的基础上,感觉求职者有一定潜力,所以面试也可能让过。但如果求职者过了30岁,或者年级更大,那么如果仅具备增删改查技能,可能就未必能进大厂了。

    进了大厂,或者接触到诸如分布式,集群或者深度学习等技术的项目后,程序员会发现一些高级技能的进阶途径。所谓实践出真知,只有具备相关技术的实践经验,程序员才能进阶到高级。

    如果程序员在项目里多上点心,多解决些实际问题,或者多接触些搭建集群等运维的活,可能进步起来会更快。

    到了这个阶段,程序员自己根本就不用主动进步,甚至能被驱动进步。这话怎么说?在平时开始时会接触到大量值钱技术没,在解决日常问题时,也可能会接触到值钱或者是底层源码,这样一来二去就有经验了。也就是说,有值钱项目的实践能力外带多通过解决问题积累经验,程序员能升级到架构师,这从技术上可能就非常强了。

    量化一下吧,100个程序员里可能最后能达到架构师水平的,未必会超过5人,我在上海,达到架构师水平的程序员,一年70万年薪都不算多。

    后面再要怎么进步呢?其实就是更好地变现技术,提升技术变现成金钱的能力。比如可以找个小公司做技术头头,或者找个风头行业的公司,或者干脆找个创业公司。 这个阶段,提升就不能单靠编程水平了,而是要靠提升解决实际问题的能力。

    最后做个总结:

    1 程序员的编程水平不是单靠训练出来的,而是靠做项目积累出来的。

    2 程序员做的项目,或者说程序员所在的公司也有三六九等之分,要提升能力先要找个更好的平台或包含值钱技术的项目。

    3 单纯靠学习提升编程水平很不现实,提升编程水平其实更靠准备面试的能力,面试发挥的能力和跳槽找好公司的能力。

    4 程序员毕竟也是吃青春饭的,如果不提升,可能会舒服一阵,但如果不升级到资深开发甚至架构师,程序员在30岁或者35岁以后,会很难。

这篇关于那些编程水平很高的程序员是怎么练成的?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/629437

相关文章

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

webm怎么转换成mp4?这几种方法超多人在用!

webm怎么转换成mp4?WebM作为一种新兴的视频编码格式,近年来逐渐进入大众视野,其背后承载着诸多优势,但同时也伴随着不容忽视的局限性,首要挑战在于其兼容性边界,尽管WebM已广泛适应于众多网站与软件平台,但在特定应用环境或老旧设备上,其兼容难题依旧凸显,为用户体验带来不便,再者,WebM格式的非普适性也体现在编辑流程上,由于它并非行业内的通用标准,编辑过程中可能会遭遇格式不兼容的障碍,导致操

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

Go Playground 在线编程环境

For all examples in this and the next chapter, we will use Go Playground. Go Playground represents a web service that can run programs written in Go. It can be opened in a web browser using the follow

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念