|
去年团队招了个学土木的转行,干了三年工地,程序白天搬砖晚上啃代码,员需愣是转行把自己啃进了大厂做后端。他跟我说了句话我记到现在:“转行最坑的程序不是学不会,是员需不知道学什么。” 这话戳心。转行网上一搜“转行程序员”,程序跳出来一堆路线图,员需从HTML到Python到算法,转行能排到明年去。程序但真正落地你会发现,员需光会写代码没用,转行你得能干活。程序干活是员需什么?是别人扔给你一个需求,你能拆成小任务,用代码把它实现出来,再扔回给测试去跑。这中间牵扯的东西,比语法本身多得多。 那到底学什么?我按优先级给你捋。 第一,语言选一门主攻,别贪多。别信“全栈工程师”那套神话,那是给有经验的人准备的。新手就选Python或者Java,Python上手快,写个小脚本能立刻看到反馈,正反馈对新手太重要了。Java岗位多,稳,但语法繁琐点。我个人偏Python,原因很简单——你学两周就能写个爬虫抓点数据下来玩,那种“我能用代码改变世界”的错觉,能撑着你熬过最枯燥的语法期。 第二,数据结构与算法,这是你的内功。很多人栽在这上面,觉得平时工作用不上。扯淡。你写个循环遍历数组,用不到复杂度分析,但你要处理十万条数据,写个O(n²)的嵌套循环,跑起来卡成PPT,你就知道内功的重要性了。不用刷几百道LeetCode,但数组、链表、哈希表、栈、队列、二叉树这些基本结构得门儿清,排序和搜索的常见写法得能手撕出来。面试考这个,不是刁难你,是想确认你有没有编程思维。 第三,数据库是绕不开的坎。几乎任何正经项目后面都挂着个MySQL或者PostgreSQL。你得会写SQL,知道索引是什么,为什么有时候查询慢得跟蜗牛似的。别问我怎么知道的,我第一次上线,一条SQL把生产库锁了半小时,差点被运维大哥从楼上扔下去。学的时候别只看语法,试着去理解数据是怎么存的,怎么查效率高。 第四,版本控制,Git必须熟练。这不是可选项,是生存技能。刚转行的人最容易犯的错就是代码不提交,或者一次提交几百个文件,commit message写“update”。你以后进团队,代码是要协作的,Git就是你的时间机器和后悔药。学个基础操作,add、commit、push、pull、branch、merge,够了。别怕命令行,多敲几次就熟了。 以上是硬技能。但我想多说一句,转行真正的分水岭不在代码,在心态。你会遇到那种情况——一个bug查了三天,最后发现是少了个分号。你会崩溃,会怀疑自己是不是不适合干这行。我告诉你,所有程序员都经历过,跟转行没关系。区别在于,扛得住的人,把崩溃当成调试过程的一部分,继续查下去。 还有一点,学会“面向搜索引擎编程”。不是让你copy代码,是让你学会怎么把问题描述清楚,怎么从一堆搜索结果里筛选出有用的答案。这本事,比记住任何API都值钱。API会忘,但解决问题的思路不会。 最后,给自己找个真实的项目练手。别老做那种计算器、待办事项列表的教程项目,没意思。做个能解决你实际问题的东西——比如帮你自动整理电脑文件的脚本,或者一个记录你健身数据的网页。遇到不会的,查,问,硬啃。项目做完,你会的远比你想象的多。 转行这条路,不轻松,但也没那么玄乎。说白了,就是一门手艺。你愿意花时间,肯动脑子,能坐得住冷板凳,学得会。别管以前学什么的,代码面前,人人平等。 |