标签:操作系统 jquer 办公 git 程序 地方 挑战 sub 演讲
前路漫漫,吾将上下而求索!
最近有时在知乎上逛逛,发现很多人对自学编程及转行程序员有困惑。我是在25岁读研时转程序员,正赶上好时候(中国云计算刚刚起步及移动互联网正红的阶段),同时又走了不少弯路,因此,基于自己的开发经历及思考认识(目前有八年 Java 开发经验),希望能够给后来者一些建议和参考。
本文主要面向编程初学者、大学生、初中级工程师(三年以下)。
编程能够有力地锻炼人的逻辑思维能力,而逻辑思考是理性思考和决策的必要件,也是思考任何问题所不可或缺的基本思维能力;
编程是一项集设计、发明、创造、表达于一体的很有乐趣很有挑战的职业,如果你乐于钻研事物原理、创造新事物,那就是你没错了!无论别人怎么看,我个人还是很喜欢编程的!
做软件开发的薪水相对较高,因为有一定门槛,需要耐心、时间、理解字符、理解逻辑,很多人可能都没法忍受天天跟字符打交道,很难忍受调试程序的枯燥(程序报错可能仅仅是一个字符没写或写错了,看到眼瞎),很难忍受软件的复杂性(现代软件通常基于大量框架、库、中间件的聚合体,出了底层问题排查会很困难异常耗时);
在知识经济时代,在信息化智能化越来越深入的时代,不懂编程,就像在现代文明社会里不识字一样。
作为兴趣
只是对编程感兴趣,希望学会一门新技能。任何时候都不晚,哪怕 60 岁开始都没问题。
编程作为辅助技能
工作中用到,但非软件开发职业,编程只是作为辅助技能。比如科学家、数据分析师、产业编程等。年轻的时候加入为宜。
转行程序员
需要慎重考虑:
如果雷神都挡不住你要学习编程的决心和信念,那就开始吧!
学习编程语言
编程初步进阶
在学会一门编程语言之后,需要学习数据结构、算法、数据库、网络、操作系统 ;
尤其要打好数据结构和算法基础,好比编程的武器装备加成(子弹和炮弹)。如果缺乏数据结构和算法基础,就好比拿着刀剑上战场,还没走两步,就被一发炮弹轰上了天 ;
操作系统是基础课。要能运用操作系统提供的能力,写出更实用的程序,就不能不懂操作系统 ;
数据库是存储和操作大量数据的技术,实际项目开发中必备的基本功 ;
网络是互联网技术的基础,不可不知,至少要理解基本原理及协议 ;
学习顺序:数据结构及算法 => 操作系统 => 数据库 => 网络 ;
数据结构书籍: 《数据结构与算法分析》 ;
算法书籍: 《算法设计与分析基础》 , 《算法(第4版)》, 《算法导论》(可挑战);
网络书籍:《计算机网络》 ,《TCP/IP详解 卷1:协议》 (进阶);
算法刷题:当你具备一定的数据结构和算法基础,能够编写程序时,推荐到 “力扣网” 刷刷题,进行更深入的算法实践(有充足时间或挤出时间)。我到 2020 年才知道力扣的存在;
当你能够比较灵活使用数据结构和算法,能够理解操作系统的原理并调用系统函数,设计比较规范的数据库表,代表编程初步进阶通关成功!
Web项目
当你具备数据结构、算法基础和数据库设计的基础时,就可以开始尝试做 Web 项目了,正式踏入开发征程;
基本技术栈:后端(SpringMVC, MyBatis) + 前端 ( Javascript , jQuery ) ,可以暂时先不管底层原理,先做起来;
工程模板:这里有一个 Springboot 模板工程,含有一个真实项目商品交易快照项目的代码实例,你可以学习真实项目中软件是怎样子的,也可以在里面做更多的尝试和探索。要运行这个项目,运行 Application.java 即可,然后在浏览器敲入 "http://localhost:8080/" ;项目地址: “springboot-template” ;
如何从 Github 拉取工程代码,见: “使用git和github托管个人项目”;
学习基本的 git 命令: git clone, git add , git commit , git push , git merge ;
编程语言进阶,比如 “Effective java 中文版(第2版)” ;
源码阅读: 此时,你应当开始学习阅读源码。可以先阅读一些简单的类,比如 JDK 容器。为什么要阅读源码及基本技巧,可参阅 “解锁优秀源代码的基本方法与技巧” ;
程序调试:在开发项目时,程序调试必不可少,最简单的打断点、单步调试得学会。程序调试技能可参阅 “软件调试的基本技巧” ;
单测编写:学习编写单测,让代码更加可靠,《单元测试之道Java版:使用JUnit 》
程序风格:学习编写好的程序必不可少。面试找工作非常看重这一点。可参阅 《Java编程风格》 , 《编写可读代码的艺术》, 《代码整洁之道》 ;
当你能够运用数据结构、算法、数据库做出一个简单的 CRUD 管理系统时,能够编写比较规范的代码时,Web 项目阶段通关成功!
踏上征程
真实战场
一两年后
三年后
此去经年
编程漫谈(二十):如何自学编程及Java、上手真实开发及转行程序员的建议
标签:操作系统 jquer 办公 git 程序 地方 挑战 sub 演讲
原文地址:https://www.cnblogs.com/lovesqcc/p/14196891.html