兴趣是最好的老师
03 将找到工作作为学习目标没有目标就没有学习效率。有了兴趣以后,另外一个重要环节是一定要弄清楚自己学习的目标是什么。我建议将“找到工作”作为初期学习目标,这样就能让你的学习目标变得非常清晰,而且学习方向也非常明了。
当然,正如上面第 01 章节所说,找到第一份编程工作只是相当于“进入高速路的匝道”。这时候才有机会正式系统学习各种工程化编程技能,将自己的理论知识和三脚猫功夫运用到实践中来。
找到工作只是一个新的开始,以后的路还很长。
先来看看一份标准(美国)工程师 JD,看看如果想达到这个要求需要具备哪些知识点。
图文无关
Minimum qualifications:
- BS degree in Computer Science, similar technical field of study or equivalent practical experience.
- Software development experience in one or more general purpose programming languages.
- Experience working with two or more from the following: web application development, Unix/Linux environments, mobile application development, distributed and parallel systems, machine learning, information retrieval, natural language processing, networking, developing large software systems, and/or security software development.
- Working proficiency and communication skills in verbal and written English.
Preferred qualifications:
- Master’s, PhD degree, further education or experience in engineering, computer science or other technical related field.
- Experience with one or more general purpose programming languages including but not limited to: Java, C/C , C#, Objective C, Python, JavaScript, or Go.
- Experience developing accessible technologies.
- Interest and ability to learn other coding languages as needed.
从这里面可以看到
(加粗部分表示目前流行的技术栈)
1 基本要求:CS 本科学历或者已经掌握相关基础知识
2 掌握一门常用编程语言,包括但不限于
- Java
- C/C
- C#
- Objective C
- Python
- JavaScript
- Go
3 在以下方面有经验
- web application development
- Unix/Linux environments
- mobile application development
- distributed and parallel systems
- machine learning, information retrieval
- natural language processing
- networking
- developing large software systems
- security software development
4 有兴趣和能力学习新的编程语言
当然,在具体面试的时候 recuriter 还会明确告诉你需要准备算法相关的技能。recuriter 会发邮件告诉你具体怎么算法相关的内容。
准备算法相关的内容
那么具体怎么根据以上要求来学习编程呢?
04 自学编程方法我的心得是“三驾马车”法,即基础概念、项目(系统设计)以及刷题(算法)三驾马车,分别学习这三个最重要的部分
- 基础概念
- 项目(系统设计)
- 刷题(算法)
三驾马车学习法
基础概念
首先是基础概念,这些方面可以看世界著名学校网课自行学习,例如
- MIT Computer Science 免费课程(课件)
- Coursera - Introduction to Computer Science and Programming Specialization
以及我最喜欢的 Udemy
- Computer Science 101: Master the Theory Behind Programming
都是英文看起来有困难?
那你应该先自学英语,这是我当年自学的经验总结:如何正确的从零开始学英语?(见末尾扩展链接)
项目(系统设计)
当达到一定的基础时可以考虑参加一些比较正规的培训。避免广告嫌疑,这里我不列具体机构。主要是学习和培养一些 engineering 相关的理念(sense)。例如怎样开发后台来支撑较高访问量;前端秒开技术(ssr)以及中后台搭建架构等等。
刷题(算法)
同时别忘记刷题和补充基础算法知识。可以看看我的刷题方法 大家都是如何刷 LeetCode 的?
总结起来就是,了解现状 → 培养兴趣 → 以找工作为目标 → 学习三驾马车内容。最后希望你能成功。如果你在学习过程中遇到任何困难,I'm here for the help.