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

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

相关文章

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

C#异步编程ConfigureAwait的使用小结

《C#异步编程ConfigureAwait的使用小结》本文介绍了异步编程在GUI和服务器端应用的优势,详细的介绍了async和await的关键作用,通过实例解析了在UI线程正确使用await.Conf... 异步编程是并发的一种形式,它有两大好处:对于面向终端用户的GUI程序,提高了响应能力对于服务器端应

C# async await 异步编程实现机制详解

《C#asyncawait异步编程实现机制详解》async/await是C#5.0引入的语法糖,它基于**状态机(StateMachine)**模式实现,将异步方法转换为编译器生成的状态机类,本... 目录一、async/await 异步编程实现机制1.1 核心概念1.2 编译器转换过程1.3 关键组件解析

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

SpringBoot中4种数据水平分片策略

《SpringBoot中4种数据水平分片策略》数据水平分片作为一种水平扩展策略,通过将数据分散到多个物理节点上,有效解决了存储容量和性能瓶颈问题,下面小编就来和大家分享4种数据分片策略吧... 目录一、前言二、哈希分片2.1 原理2.2 SpringBoot实现2.3 优缺点分析2.4 适用场景三、范围分片

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序