A Simple Structure of Knowledge raised to help the Learners and enthusiasts with a more professional and sophisticated approach.
Read other people’s code. Particularly try to find well-written code. There are infinitely many ways to write even simple programs, and some ways are better than others. Other people will appreciate well-written, well documented programs, so write your programs for people to read.
The key to good code is how your organise the parts of the program, how you modularise. Focus on putting closely related things together, and on making each part of the program do only one job.
Persistence in leadership means hard work because you can’t achieve positive outcomes without it. Positive outcomes are connected with the proper treatment of the entire team. If you can do that, everything will work out perfectly. But in order to have a good team, which will appreciate the things you do for them, you have to find the right people. You need to be compassionate, have the emotional intelligence on a high level, and be open to people’s needs. This also requires involvement and the will to always improve the outcomes. All these traits brought together make up persistence – an effort in pursuing a career of a good leader.
Open every black box and see what’s inside.
Frameworks, libraries, languages, never mind if you can’t understand what you find under the hood on your first attempt. You can always put them aside and return to them later, just see to it that you can take them apart and have a look.
All the rules you have to follow when you first learn were invented by someone, you can make them yours to reinvent with some persistence. Steer clear of tools that put barriers in the way of this activity, those make you depend on them in the wrong way.
A Simple Structure of Knowledge raised to help the Learners and enthusiasts with a more professional and sophisticated approach.
A Simple Structure of Knowledge raised to help the Learners and enthusiasts with a more professional and sophisticated approach.
Think of it like playing a musical instrument. At first you're clunky at it, doesn't make sense, and your fingers always messing things up so it doesn't sound great. However, as you continue to do it each day and hone your skills, it starts to flow better and sounds better. Then you begin to master it and you start playing effortlessly; whatever you think up in your head you're able to translate into music. The exact same concept holds true for programming, and it's a skill you build, not something you just read and instantly master because you read it.
This is my tips and what I do. I read through the language fully, even if I don't understand everything. Afterward I practice what I learned/remembered, and then I read through the language again. This time I write down notes on everything I still don't understand. Then I use my notes and I research each thing as much as possible, and then I practice those things to build up my understanding. Rinse & repeat this process until it clicks. Every year I read through the languages I know at least once or more. Each time I do this I understand things better/differently than I did originally, and it furthers my abilities by doing that.
With all of this, it's a never-ending learning process. Always something more to learn, something further to master, and something new to learn as time progresses.
I’ve done variations on all of these for work, and I think they (mostly) suck! Now that doesn’t really answer the question yet, but I don’t think it’s irrelevant. People worry too much about whether they “love” what they’re doing. People don’t need to be drooling with happiness when they’re working. It really is enough that it beats most of the alternatives and that you don’t feel drained by it. If it’s more than that, bonus. That said, I really do love programming. (Programming, tutoring, and research are the only things so far that I really liked doing for work.) Programming is fun for me because it scratches three itches: learning things, solving puzzles, and building things. To me, this makes it interesting and meaningful. And I have a lot of fun with it.
It goes without saying that there is a lot to be learned as a software developer. Software developers don’t just need to learn about programming language standards. There’s a lifetime of learning. There are data structures and algorithms. There’s machine learning. There’s graphics. There are lessons to be learned about building more readable, more maintainable, and properly-refactored DRY code (“don’t repeat yourself”). There are libraries to play with and technologies to learn. There’s all the little questions that you would never think to ask until getting into the details of a project (this is why StackOverflow is your friend). And there’s practically limitless domain knowledge that could be relevant to a programming project. If somebody enjoys learning, a software developer is not a bad thing to be.
A Simple Structure of Knowledge raised to help the Learners and enthusiasts with a more professional and sophisticated approach.