关于《How to Learn to Code Get a Developer Job in 2023》的经验学习

news/2024/4/17 2:08:11/文章来源:https://blog.csdn.net/u011868279/article/details/129176220

1. Who is This Book For ?

for Anyone who is considering a career in software development.

2. Can Anyone Learn to Code?

      Any sufficiently motivated person can learn to code.

3.Executive Summary

Learning to code is hard.Getting a job as a software developer is even harder. But it's worth the effort.

Coding is a high-paying, intellectually challenging, creatively rewarding field. 

career progression:

senior developer->tech lead -> engineering manager -> CTO, and perhaps even CEO.

4.Build your skills

Front End Development : HTML, CSS, JavaScript

Back End Development : SQL , Git, Linux , and Webservers

Scientific Computing: Python and  its many libraries

The best way to learn these tools is to build projects. Try to code at least some every day.

4. Build your network

Create GitHub, Twitter, LinkedIn, and Discord accounts.

Go to tech meetups and conferences. 

Add people on LinkedIn, follow them on Twitter, and go to after-parties.

5.Build your reputation.

  • Share short video demos of your projects.
  • Keep applying to speak at bigger and bigger conferences.
  • Hang out at hackerspaces and help people who are even newer to coding than you.
  • Contribute to open source. 
  • Keep interviewing until you start getting job offers.
  • Your first developer job will be the hardest. Try to stay there for at least 2 years, and essentially get paid to learn.

Most importantly, sleep and exercise.

Any sufficiently-motivated person can learn to code well enough to get a job as a developer.

Remember: you can do this.

Chapter 1: How to Build Your Skills

Nobody Can Make You a Developer But You

Lessons from my Coding Journey

Why is Learning to Code so Hard?

Learning to code is hard for a few particular reasons. And some of these are unique to coding.

What is coding?

Coding is telling a computer what to do, in a way the computer can understand.

Why is learning to code still hard even in 2023?

There are three big reasons why learning to code is so hard, even in 2023.

  1. The tools are still primitive
  2. Most people aren't good at handling ambiguity, and learning to code is ambiguous. People get lost.
  3. Most people aren't good at handling constant negative feedback. And learning to code is one brutal error message after another. People get frustrated.

coding is the rare profession where you can just infinitely reuse solutions to problems you've previously encountered.

Thus as a developer, you are always doing something you've never done before.

How Not to Get Frustrated

Tip #1: Know that you are not uniquely bad at this.

Tip #2: Breathe.

Tip #3: Use Rubber Duck Debugging

Rubber Duck Debugging is a great tool for slowing down and talking through the problem at hand.

How do Most People Learn to Code?

The Importance of Computer Science Degrees

You don't need a Computer Science degree to become a developer.

But their usefulness is undeniable. And I'll explain why.

"Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter." – Eric Raymond, Developer, Computer Scientist, and Author

Why do so Many Developer Jobs Require a Computer Science Degree Specifically?

here's my theory on this: what you learn in university is less important than whether you finished university.

  • The education itself. (You can take courses from some of the best universities online for free, so this alone does not justify the high cost of tuition.)
  • The "college experience" of living in a dorm, making new friends, and self discovery. (Most US University students never live on campus so they don't really get this anyway.)
  • General education courses that help you become a "well rounded individual" (Ever hear of the Freshman 15? This is a joke of course. But a lot of university freshman do gain weight due to the stress of the experience.)

Do You Need a University Degree to Work as a Software Developer?

No. There are plenty of employers who will hire you without a bachelor's degree.

A bachelor's degree will make it much easier to get an interview at a lot of employers. And it may also help you command a higher salary.

If You Already Have a Bachelor's Degree, Does it Make Sense to Go Back and Earn a Second Bachelor's in Computer Science?

No. Second bachelor's degrees are almost never worth the time and money.

If you have any bachelor's degree – even if it's in a non-STEM field – you have already gotten most of the value you will get out of university.

What About a Master's of Computer Science Degree?

These can be helpful for career advancement. But you should pursue them later, after you're already working as a developer.

Many employers will pay for their employee's continuing education.

One program a lot of my friends in tech have attended is Georgia Tech's Master's in Computer Science degree.

Georgia Tech's Computer Science department is among the best in the US. And this degree program is not only fully online – it's also quite affordable.

Will Degrees Continue to Matter in the Future?

Yes, I believe that university degrees will continue to matter for decades – and possibly centuries – to come.

What Does a Computer Science Bachelor's Degree Cover?

What Alternatives are There to a University Degree?

If you want formal education, go for the bachelor's degree. If you don't want formal education, don't do any program. Just self-teach.

How to Teach Yourself to Code

 So whether you pursue formal education or not, know this: you will need to get good at self-teaching.

What Does it Mean to be a "Self-Taught" Developer?

 when I refer to self-teaching, I mean self-directed learning – learning outside of formal education.

What is Self-Directed Learning?

You're going to choose what to learn, from where. That is the essence of "Self-Directed Learning."

What Programming Language Should I Learn First?

The short answer is: it doesn't really matter. Once you've learned one programming language well, it is much easier to learn your second language.20

There are different types of programming languages, but today most development is done using "high-level scripting languages" like JavaScript and Python. These languages trade away the raw efficiency you get from "low-level programming languages" like C. What they get in return: the benefit of being much easier to use.

Python is a powerful language for scientific computing (Data Science and Machine Learning).

You could code your entire career in JavaScript and would never need to learn a second language.

So I recommend starting with JavaScript. Not only is it much easier to use than languages like Java and C++ – it's easier to learn, too. And there are far, far more job openings for people who know JavaScript.

The other skills you'll want to focus on are HTML and CSS. If a webpage were a body, HTML would be the bones, and CSS would be the skin. (JavaScript would be the muscles, making it possible for the website to move around and be interactive.)

You'll also want to learn how to use Linux. Linux powers a vast majority of the world's servers, and you will spend much of your career running commands in the Linux command line.

You'll also want to learn Git. This Version Control System is how teams of developers coordinate their changes to a codebase.

You'll want to learn SQL and how relational databases work. These are the workhorses of the information economy.

You'll also hear a lot about NoSQL databases (Non-relational databases such as graph databases, document databases, and key-value stores.) You can learn more about these later. But focus on SQL first.

Finally, you'll want to learn how web servers work. You'll want to start with Node.js and Express.js.

When you hear the term "full stack development" it refers to tying together the front end (HTML, CSS, JavaScript) with the back end (Linux, SQL databases, and Node + Express).

But the key skills you should spend 90% of your pre-job learning time on are:

  1. HTML
  2. CSS
  3. JavaScript
  4. Linux
  5. Git
  6. SQL
  7. Node.js
  8. Express.js

If you learn these tools, you can build most major web and mobile apps. And you will be qualified for most entry-level developer jobs. 

Building Your Skills is a Life-Long Endeavor

We've talked about why self-teaching is probably the best way to go, and how to go about it.

Chapter 2: How to Build Your Network

"If you want to go fast, go alone. If you want to go far, go together." – African Proverb

How to Build Your Reputation as a Developer

There are at least six time-tested ways you can build your reputation as a developer. These are:

  1. Hackathons
  2. Contributing to open source
  3. Creating Developer-focused content
  4. Rising in the ranks working at companies who have a "household name"
  5. Building a portfolio of freelance clients
  6. Starting your own open source project, company, or charity

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_72980.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jupyter的安装步骤

1.安装python文件 首先去官网python去下载python的安装包,点击donwload,选择合适的系统。这里我是windown系统,点击进去,如图找到有installer的去下载。不建议下载最新版本的,会有兼容问题。 2.安装python 点击第二个选项是自己配…

JavaScript 进阶--charater3

文章目录前言一、编程思想1.1 面向过程介绍1.2 面向对象编程 (oop)对比二、构造函数三、原型3.1原型3.2 constructor 属性3.3 对象原型3.4 原型继承3.5 原型链总结前言 🆑学习目标 理解面向对象思想,掌握函数原型对象运用面向对象封装继承特点&#xf…

Docker之路(5.Docker镜像学习、镜像加载原理、镜像分层原理、通过commit提交镜像)

1.镜像是什么 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内客, 包活代码、运行时、库、环境变量和配置文件。 所有的应用,直接打包docker镜像&…

UE4 手把手教你做插件(4)做一个可以拖入场景的小方块插件

0,前言 学习一下如何编写一个有actor的插件,能够将它拖入场景里面。 1,创建插件 (1)创建一个空白插件 添加之后vs里面就会多出一个目录: (2)给插件添加一个actor 创建完actor之后&am…

ubuntu本地访问nas

需求 本地磁盘空间太小,本地网络里有个nas,希望将nas作为数据盘挂载到本地使用。 方法1 基于sftp访问nas 首先nas设置时要打开sftp访问功能。 然后用ubuntu桌面访问服务器的功能登录sftp,类似如下指令 sftp://user192.168.0.100 ubuntu下…

DevData Talks | 对谈谷歌云 DORA 布道师,像谷歌一样度量 DevOps 表现

本期 DevData Talks 我们请到来自 Google Cloud 谷歌云的 DORA 研究团队的嘉宾 Nathen Harvey与 Apache DevLake、CNCF DevStream 的海外社区负责人 Maxim 进行对谈。如果您关注 DevOps 的话,也许对这个团队有所耳闻。 DORA 的全称是 DevOps Research and Assessme…

【运动控制】CNC三轴小线段路径规划

CNC三轴小线段路径规划 文章目录CNC三轴小线段路径规划一、项目说明二、具体实现1、速度规划2、小线段插补3、运动学逆解刀轴插补点4、差分处理得到实际的速度和加速度5、加速度滑动平均6、实现的效果如图所示三、Reference写在前面,本文是作为一个练手小项目的总结…

论文浅尝 | Deep Reinforcement Learning for Entity Alignment

笔记整理:陈鹏,天津大学硕士链接:https://aclanthology.org/2022.findings-acl.217.pdf动机实体对齐(Entity Alignment)的基本目标在于发现两个知识图谱间指向同一现实对象的实体对,以便将不同知识图谱连接起来&#x…

Interview系列 - 06 Java | ArrayList底层源码分析 | 遍历集合时如何删除集合中的元素

文章目录1. 底层源码分析01. 属性02. 构造方法03. 在数组的末尾添加元素 add(E e)04. 在数组的指定位置添加元素 add(int index, E element)05. 替换指定位置的元素 set(int index, E element)06. 获取指定索引位置处的元素 get(int index)07. 删除指定位置的元素 remove(int i…

华为OD机试真题 用 C++ 实现 - 众数和中位数 | 多看题,提高通过率

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

SpringCloud - Feign远程调用

目录 Feign的远程调用 RestTemplate方式调用存在的问题 介绍与初步使用 Feign的自定义配置 Feign运行自定义配置来覆盖默认配置,可以修改的配置如下: 配置Feign日志有两种方式: Feign性能优化 Feign底层的客户端实现: 连…

AI作画—中国画之山水画

山水画,简称“山水”,中国画的一种,描写山川自然景色为主体的绘画。山水画在我国绘画史中占有重要的地位。 山水画形成于魏晋南北朝时期,但尚未从人物画中完全分离。隋唐时始终独立,五代、北宋时趋于成熟,…

Linux多媒体子系统01:从用户空间使用V4L2子系统

1 V4L2应用编程基础1.1 概述V4L2应用编程需要使用如下系统调用,open(): 打开V4L2设备 close(): 关闭V4L2设备 ioctl(): 向V4L2设备驱动程序发送控制命令 mmap(): 将V4L2设备驱动程序分配的缓冲区内存映射到用户空间 read()或write(): 这2个系统调用是否支持取决于流…

领导催我优化SQL语句,我求助了ChatGPT。这是ChatGPT给出的建议,你们觉得靠谱吗

作为一个程序员,无论在面试还是工作中,优化SQL都是绕不过去的难题。 为啥?工作之后才会明白,随着公司的业务量增多,SQL的执行效率对程系统运行效率的影响逐渐增大,相对于改造代码,优化SQL语句是…

LeetCode-93. 复原 IP 地址

目录题目思路回溯法题目来源 93. 复原 IP 地址 题目思路 意识到这是切割问题,切割问题就可以使用回溯搜索法把所有可能性搜出来,和131.分割回文串就十分类似了。 回溯法 1.递归参数 startIndex一定是需要的,因为不能重复分割&#xff0c…

实战:手把手教你colossal-AI复现Chatgpt的流程

相信很多人都看了使用colossal-AI复现Chatgpt的流程的文章,但实际上看过了,不免有人发出“说得贼明白,就是自己做不出来”的感叹吧。本人公开一下实战过程,给有兴趣复现chatgpt流程的朋友一个参考。 一、环境搭建: 1…

ES6-ES11基本全部语法

在进入es6语法之前,先走一波es5遍历迭代Api,,它们的作用,应用场景,参数,以及返回值分别是什么。(forEach、map、some、every、filter)我们统一设定一个初始数组:let arra…

【likeshop多商户】电子面单商家直播上线啦~

likeshop多商户商城v2.2.0版本更新啦! 新增功能: 商家直播 单子面单 优化: 个人中心优惠券数量统计优化 修复: 秒杀商品待审核时,下单价格计算错误 个人中心修改头像后地址保存错误 「商家直播」 提升品牌知名度…

华为OD机试真题 用 C++ 实现 - 子序列长度 | 多看题,提高通过率

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

2-并发篇

线程有哪些状态 java的线程状态有6种: 操作系统中有5状态的说明 注意java的runnable对应了就绪、运行、阻塞I/O 线程池的核心参数 主要是说线程池的一个实习类 threadPoolExecutor.class 1.corePoolSize 核心线程数据(可以为0) 最多保…