学习编程之始
学习编程之始[知乎牛岱的live笔记]
文末附有其Github的代码仓库
1.Github 与 stackoverflow
- 开源: 软件源代码公开、免费
GITHUB
Issue 评论/Bug反馈
PullRequest 开源代码贡献
Git 版本控制/代码历史记录工具 Repository 代码仓库
fork 克隆代码
StackOverflow
问答社区 有价值的问题
2.Search Engine 与 Browser
搜索引擎:
Google、Bing、Quark
浏览器:
PC端:Chrome(Chrome中的插件使其变得更强大,比如做前端),Edge;
移动端:夸克,Chrome;
3.学习编程过程的自我定位
把自己定位成为一个开发者,而不是一个学生!
- 理解知识框架,在实战中填补细节
- 写技术性文章,发表在知乎等平台————意思是,不要仅仅通过记笔记完成学习,而要吸收消化后表达出来
- 不用永远处在准备状态中,不用永远在学习编程的基础知识。而要在开发中有目的性地学习,扩展延伸学习,学会看google,StackOverflow,文档。
- 不要关注在知识的储备中,而要关注在项目的实现和完成上,因为知识本身就是用进废退,不要担心遗忘。学习一门语言之始,一定要开始了解,这门语言可以用来做什么,那学习这门语言的目标就是如何利用这个语言完成一个初级目标。例如java,“在半年内通过学习java,做出一个中小型的基于Web的企业管理后台”等。
- 要在编程的过程中给自己成就感和学习反馈。
- 简历上最好的表达方式是:GitHub账号,XX项目作者。
- 降低学习梯度,使学习曲线平滑,例如从克隆项目到修改项目到创建自己的项目。
4.学习使用命令行
因为大部分工具其实是没有图形界面的,而且使用命令行更加简便快捷,可以自动化执行。
- 终端(和计算机交互的另一种方式):
Windows: Windows Terminal,PowerShell,WSL,Command Prompt
Bash Git工具: Branch(解决多人协同工作的问题),Commit(代码历史记录,便于维护),Remote/Local
Git学习资源:Become a git guru(https://www.atlassian.com/git/tutorials)
5.个人技术博客的搭建
最容易:GithubPages;
中等:Wordpress、Wix.com等建站工具(比较业余);
硬核:Jhipster功能应用————全栈功能型网站:What is JHipster?;。
6.编程习惯
代码风格
CheckStyle工具————代码风格检查工具
设计模式
设计模式是一种用编程语言描述显示世界问题广泛采用的各种模式,如观察者模式、工厂模式、依赖注入模式等。
!!!工程化管理代码!!!
写代码的一些小习惯
- 变量名不要过于简洁,最好可以直接通过变量名推测变量的作用。
- 重复出现的代码一定要封装成独立的类或函数。
- 提前降低代码的耦合度,不同作用、不同类别的代码,不要混在一起,最好分成独立的文件。
- 将代码进行业务分层,只有层次分开了,可以获得足够的可拓展性。
- 用良好的设计模式来“设计”软件,在执行一些算法的时候,可以想一想它的时空复杂度,如何让它运行地更快。
- 养成用GitHub托管项目的习惯。
7.四大核心课程
- 算法与数据结构
- 学习coursera上开源算法4课程(教材:https://algs4.cs.princeton.edu/home/ 视频:https://www.coursera.org/learn/algorithms-part1/)
- 做leetcode的easy到medium难度的题目(初、中级学习)
- 操作系统
- 经典教材:Operating System Concepts;Linux Kernel Development
- 一个操作系统的GitHub项目:[How-to-Make-a-Computer-Operating-System]https://www.github.com/SamyPesse/How-to-Make-a-Computer-Operating-System
- 计算机组成原理
- 理解计算机的核心思想
- 计算机网络
- 互联网的运行方式
8.管理电脑
- 包管理工具:
Linux: apt-get;yum;etc
OSX: brew
Windows: Chocolatey - 开发工具:
Visual Studio: C,C++ Visual StudioCode: 除了C/C++外的几乎所有主流语言
牛岱的代码仓库:https://github.com/niudai/How-to-be-a-good-programmer
Enjoy Reading This Article?
Here are some more articles you might like to read next: