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

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死锁怎么排查的方法实现

《MySql死锁怎么排查的方法实现》本文主要介绍了MySql死锁怎么排查的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录前言一、死锁排查方法1. 查看死锁日志方法 1:启用死锁日志输出方法 2:检查 mysql 错误

C#多线程编程中导致死锁的常见陷阱和避免方法

《C#多线程编程中导致死锁的常见陷阱和避免方法》在C#多线程编程中,死锁(Deadlock)是一种常见的、令人头疼的错误,死锁通常发生在多个线程试图获取多个资源的锁时,导致相互等待对方释放资源,最终形... 目录引言1. 什么是死锁?死锁的典型条件:2. 导致死锁的常见原因2.1 锁的顺序问题错误示例:不同

Rsnapshot怎么用? 基于Rsync的强大Linux备份工具使用指南

《Rsnapshot怎么用?基于Rsync的强大Linux备份工具使用指南》Rsnapshot不仅可以备份本地文件,还能通过SSH备份远程文件,接下来详细介绍如何安装、配置和使用Rsnaps... Rsnapshot 是一款开源的文件系统快照工具。它结合了 Rsync 和 SSH 的能力,可以帮助你在 li

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo

PyCharm接入DeepSeek实现AI编程的操作流程

《PyCharm接入DeepSeek实现AI编程的操作流程》DeepSeek是一家专注于人工智能技术研发的公司,致力于开发高性能、低成本的AI模型,接下来,我们把DeepSeek接入到PyCharm中... 目录引言效果演示创建API key在PyCharm中下载Continue插件配置Continue引言

怎么关闭Ubuntu无人值守升级? Ubuntu禁止自动更新的技巧

《怎么关闭Ubuntu无人值守升级?Ubuntu禁止自动更新的技巧》UbuntuLinux系统禁止自动更新的时候,提示“无人值守升级在关机期间,请不要关闭计算机进程”,该怎么解决这个问题?详细请看... 本教程教你如何处理无人值守的升级,即 Ubuntu linux 的自动系统更新。来源:https://

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

LinuxMint怎么安装? Linux Mint22下载安装图文教程

《LinuxMint怎么安装?LinuxMint22下载安装图文教程》LinuxMint22发布以后,有很多新功能,很多朋友想要下载并安装,该怎么操作呢?下面我们就来看看详细安装指南... linux Mint 是一款基于 Ubuntu 的流行发行版,凭借其现代、精致、易于使用的特性,深受小伙伴们所喜爱。对

macOS怎么轻松更换App图标? Mac电脑图标更换指南

《macOS怎么轻松更换App图标?Mac电脑图标更换指南》想要给你的Mac电脑按照自己的喜好来更换App图标?其实非常简单,只需要两步就能搞定,下面我来详细讲解一下... 虽然 MACOS 的个性化定制选项已经「缩水」,不如早期版本那么丰富,www.chinasem.cn但我们仍然可以按照自己的喜好来更换

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件