Cover image from John Salzarulo on Unsplash
I've been teaching myself to write code for awhile now and like many I often wonder if I am doing it...
For further actions, you may consider blocking this person and/or reporting abuse
That's been my experience too. We have to do our own projects, especially something that'll solve an issue we are currently facing or something that we feel could be helpful to those we interact with (colleagues, juniors, students, etc)
I've also found that I learned a lot while teaching and writing books about topics I'm familiar with. There is a natural incentive in these tasks to deep dive and give it our best shot. And while doing so, we bring out our thoughts in written/vocal form which provides lot more clarity than what we had in our minds alone.
I have some curated links that can help if you are looking for ideas to implement.
Same here. I've stopped following the tutorials and now I'm just getting notes and trying to apply the new concepts to my side projects.
Another thing that is really, really helpful is having pair programming sessions with more senior devs although this might not be possible if you're just learning on your own but still dont have a job.
You can also review the code of libraries you use and try to understand why it's build the way it is :)
Working with a more senior person is a great way to learn more, especially since they can provide personal notes on their experience which helps a lot in hearing how someone made a real world decisions on how to do something. But, as you said it isn't always an option for some. I have seen some sites recently that offer pair programming with someone online to do that kind of mentoring. It is a neat idea.
I have dug into the code of things I have used too. Mostly I have done it with packages on npm to see how they work and if I can implement it myself without having to install the dependency. But, it is a great way to learn how real projects are structured and see how things work.
I have been working towards teaching about code as well. I have given some talks and plan on creating more articles here that are technically focused on something.
Thanks for those links. I will definitely check those out. :)
Exactly, I tell every new programmer: please do NOT copy from the tutorial !
You mentioned both reading and writing code, there is also another great way to learn which is teaching other people code whether in write-ups, videos, in-person, or whatever.
Other folks have mentioned teaching code as a way to learn it more deeply. I think it is a great idea. It gives you the chance to dive more deeply into how something works. I have been working on doing that myself. That is part of why I write posts here to teach others about my experience with coding. As I go I hope to also have more technical focused articles that teach how to use something.
The point where u mentioned that you would copy it on your phone and watch videos to learn and implement. Even I used to do that while I was learning to code. I stopped watching series or some movie while commuting and started binge watching tutorials and doing so we get the gist of what the tech stack ur trying to learn.
I had stopped watching it because it seemed very slow paced. maybe ill reconsider and try out your idea.
I'd be interested to hear how it works for you if you try it again. My intent is basically the same. I want to get exposure to the content, but not following along coding while watching. Then I can take the concepts and apply it to my own projects. Thanks for sharing your approach!
For me, I observed that there are not a ton of difference between the coding skills of an intermediate (SDE II) and advance (SDE III) level engineer at my company. The main difference I see is their ability to solve problems and the impact it has on the team, org, or the whole company.
I would say once you have a pretty good grasp of the fundamentals of the language, framework, or ecosystem where you are trying to get good at, start trying to improve and practicing your problem-solving skills.
One way I do this is by reading research papers and sometimes blogs on my commute.
Here are the reasons why:
Hope this helps and wish you all the best!
I agree, problem solving skills will take someone very far in learning to code. That skill can be more important than knowing the syntax of a language. I like the idea of reading detailed papers on related topics that aren't specific to something you use yourself. Seeing the methods others used to solve their own problems would be really helpful to better your own problem solving skills.
Watching tutorials during your commute then working from it seems like a solid idea, but I'll admit my memory with details isn't always the best... Do you reference back to the video while you work if you have any gaps in what you remember from it, or do you try to force yourself to work completely blind from what you were 'taught'?
I feel like there could be different advantages from either way, so I am curious how you do it.
I had this happen the other day actually. I tried to pull it from memory and after a bit of trying things out I went back and referenced the video. After reviewing a section I was able to continue working. I can see someone trying to test oneself to remember something without referencing anything. But, this doesn't seem very realistic. In the real world people, including very senior engineers, are looking up references to things all the time to know what to do. For myself I'm not trying to be able to pull tons of information from my head. I'd rather know my resources and how to use them to be successful. This combined with a good understanding of the fundamentals of programming will get the job done if you ask me and that's really what matters.
Personally as I've grown more confident (and hopefully also more competent) I have found hello world / build a blog site / simple cars API -type examples to be less useful.
Recently I have started looking at code in open source projects and trying to make sense of what is happening. Seeing how real people write real code that does a real job is ... real useful ;)
My ambition for the next 6 months is to find a project that I am using and understand it well enough that I can make my first open source contribution.
In my work life my team started doing code reviews about 6 months ago. I have learned more from reviewing code and having my code reviewed than in all the books and blogs I read in the 6 months prior. If you can find someone who you trust to look at your work and give you constructive feedback I'd encourage you to go for it!
That's really awesome you are diving into code of projects you use to eventually contribute to them. That seems like a great way to learn more. Like you said, seeing real world code helps a lot.
I agree that having code reviewed can help the learning process a lot. I've had the opportunity to discuss code with others in the past and it has helped tremendously. I'm hopeful to get the chance to do that again.
Great advice.
Thank you. I'm glad you enjoyed it.
Parabéns pela post
Thanks! :)