As per research reports, around 70% of programmers considered themselves self-taught programmers (as of 2019). And, if we observe the trend, this number seems to be increasing rapidly. However, for being a well-versed self-taught programmer, you have to be very disciplined about the strategies or roadmaps you are following.
Are you a self-taught programmer? Could you please share your self-learning experience and recommended any useful learning resources and methods?
Related article: https://www.geeksforgeeks.org/why-you-should-become-a-self-taught-programmer/
练习说明:
- 这是电鸭社区英语练习俱乐部的练习帖子,每两周一个,旨在帮助大家提高英语读写的能力;
- 任何人都可以尝试用英语来回答帖子里留下的问题;也可以在评论区用英语进行讨论;
- 认真、优秀的评论,会被大家“电一下”,获得电量;被电最多的评论,会得到俱乐部老师的回复和纠错;
- 除此之外,仅社区英语练习俱乐部的成员(付费的/头像带‘ABC’的)的回答和评论才有机会得到俱乐部老师的纠错和批改,以此提高;
- 如果你也想提高自己的英语工作能力,欢迎了解后加入我们的英语练习俱乐部:https://eleduck.com/posts/pqfjZ1
什么才是有效的读写练习?
- 尽可能地多读多写,认真的态度是一切学习的前提;
- 每次发布,都要先使用谷歌翻译、Grammarly等工具自检,做到自己英语能力的最好,这样才能真正提高;
- 老师们的纠错和点评是帮助你们改出更地道的、更专业的表达;基本的单词拼写和时态语法,这些要自检。
- 得到纠错后的评论,一定再自己动手本地敲一遍,记忆才更深刻。
往期的练习帖
- 【英语练习贴006】Tell Me About a Time When You Failed
- 【英语练习贴005】 Tell me one time you worked with someone you felt wasn't good at communicating?
- 【英语练习贴004】 What productivity tools do you use? Explain how they are useful.
- 【英语练习贴003】Write about one specific goal you want to achieve this year.
- 【英语练习帖002】what will you do when facing layoffs and hire freezing
- 【英语练习帖001】Soft Skills vs Technical Skills – Which is more important for getting jobs
英语:
练习区
Firstly I read the official document of the language and spent some time understanding the core concepts and scenes that I can use the language. Try to figure out the history of this programming language and what problems it was created to resolve. After this, find an official tutorial to accomplish some simple examples like TODO-LISTS or build a simple application.
But being more proficient at some technical skills requires hard work, motivation, and patience. I will make a long-term plan to achieve the purpose: wake up early every workday to spend 1 hour more before I go to the company or return home.
Thank you for sharing your learning experience. What programming languages did you study by yourself? and how long did you take to learn them?
I taught myself to program when in college and have been a programmer with 4 years of working experience.Here are some points that I stick to when learning a technical skill.
Identify the problem
When facing a new tech, I ask myself several questions: What problems am I facing? does it solve my problems? Are there any alternatives? Do I have to learn it "right now"? if my answer is "Yes", then I will prioritize my schedule to learn it.
Find the right material
Official docs and blogs are the most authoritative material, books in action are secondary choices, and community posts and discussions are good complements.
Follow the "Eighty-Twenty Principle"
Set the goal and find out "the minimum knowledge" that I have to learn. Spend one day or two reading the documentation and have a fundamental understanding of how things work, then try to use it to solve the problems at hand.
In short, programming is just a tool, try to use it to solve the problems at hand and make your life better.
Hi York, awesome job, Thank you for sharing the key points to learn a technical skill. it is really readable and easy-understandable in bullet point format.
Just one suggestion:
I taught myself to program when in college and have been a programmer with 4 years of working experience
-> I taught myself programming in college (or when I was in college) and have been a programmer for 4 years.
Thank you for your reviewing
I can not agree with item three anymore. "Eighty-Twenty Principle" is the key of
learning a new language. In recent days, it's easy to get lost in the technique forests. l always have new languages to learn. In order to become a full-stack programmer. I focus on the JavaScript technical roadmap. Instead of digging one language too much. I spent two months to cover this roadmap: Internet, Html, Css, Tailwind, JavaScript, Node, React, Next, Database, Prisma. Including the core concepts of languages, some exercises and several small projects. It was really an amazing experience for me.
Yes, I am a self-taught programmer. All my programming skills are learned from books or videos.
I watched videos from scratch as I was not a cs student in my college. I imitated everything from the tutorial like how to install the environment, how to use the IDE, and how to write the "Hello World". Even though I didn't know what I was doing, I got satisfacted when my code was running successfully. This motivated me to be a programmer.
Now I am a more-experienced and proficient programmer, I prefer to read professional books or official docs. The official docs are my first choice when I want to learn new techs. I can get the most authoritative advice, usage, and the latest features from the owner. This can avoid many detours in my journey. After I got the usage, I usually use it to resolve a real problem. I can refine my project in progress when I am more and more familiar with it. Some books also have exercises after every chapter, these are another good way to firm your knowledge. Trying to implement them with the skills I just learned from the book impresses my brain deeply. Also, I can consult some experts in the community with GitHub, Slack, or E-mail when I cannot find answers from the internet. Then I can feedback to the community about my new discovery, or maybe get involved in an open-source project is the best.
Wow, You are really a self-study model. Could you please share one programming language you have learned and learning resources for developers who also want to improve in this filed?
"I watched videos from scratch as I was not a cs student in my college. I imitated everything from the tutorial like how to install the environment, how to use the IDE, and how to write the "Hello World". Even though I didn't know what I was doing, I got satisfacted when my code was running successfully. This motivated me to be a programmer."
As you didn't talk about a real example, it is better to use the present time.
got satisfacted -> got satisfaction, or got achievement
I am studying Front-End techs now. I am quite familiar with JavaScript but I want to be a full-stack developer with TypeScript & Node.js & React.js. So I read the official doc(TypeScript & Node.js & React.js), do some exercises with the guideline. Try to write an HTTP server or a React web application. I have downloaded some projects from Github like this one Builder Book. Study it, write some new features then make it to be my project.
As a self-taught programmer and a web developer with 6- year experience, I’d like to share something about self-learning:
When we learn new tech stacks such as Java programming language or FE library like React, we usually start with reading official documentation and then try to write a demo. We may meet some difficulty but with the help of docs, we can learn by doing efficiently.
Besides, to improve the quality of our code, we can imitate and refer to some popular open-source repositories because of their excellent and mature system design, project structure, code maintainability, etc.
Finally, a good developer needs more skills besides code. For example, skill of user experience design. A developer may think like a user and can make a user-friendly and efficient application. Ability of risk management helps us with the process of prior identification of any risk or issue that can come up during the project lifecycle and prepared with the backup plans.
In one word, thanks to the Internet, we can find so many tutorials, instructional videos, and open-source projects. Whoever keeps learning and is self-driven will improve their skills and abilities.
You used besides, finally, and In one word. That's great. some suggestions to make the sentence more smooth:
A good developer needs more skills besides code -> A good developer needs more skills than coding.
skill of user experience design -> the skill of user experience design, or UI/UX design
A developer may think like a user and can make a user-friendly and efficient application -> when a developer thinks like a user, he can make a user-friendly and efficient application.
we can find so many tutorials, instructional videos, and open-source projects. Whoever keeps learning and is self-driven will improve their skills and abilities. ->
we can find so many tutorials, instructional videos, and open-source projects** to** help us self-taught new skills and improve our abilities quickly.
I would share my experience of learning Node.js, follow these steps:
Starting by getting a good understanding of Javascript, as Node.js is built on top of Javascript. I learned Javascript through online tutorials and books.
Once I had a good understanding of Javascript. I moved to learn about Node.js. There are many online tutorials and books that can help me.
Tried some beginner-friendly projects, like TODO-LIST, and online chat rooms.
As I worked on my projects, reading the official documents as needed. The documents are valuable because they can help me how Node.js works and how to use its various features.
Joined online communities or forums that can connect with other Node.js developers and learn from them.
Overall, learning Node.js by myself took time and effort, but it was a rewarding experience.
Great job, I really like you sharing a real studying example, Like the word "beginner-friendly" .
There is a little mistake,
learning Node.js by myself talked time and effort, but it could be a rewarding experience.
-> Learning Node.js by myself took time and effort, but it was a rewarding experience.