Hi everyone,
I'm curious to know how many of you , how and when do you practice, train your developer skills ? As I struggle to settle a routine where I could train on a regular basis, I would like to know if some of you have a recipe that I could borrow, or if I'm not the only one who find it difficult to dive (again) into code when at home ?
Did you ever felt like you want to code but, you can't explain why, you never put yourself at it ?
For example, when I'm hyped, I spend some time on coding game, I work on personal projects and I try to read code (from Github) as much as I can.
So let me pick your brains mates and tell me how you train yourselves ^^.
Have a nice day !
Unlike all of the answers here, I am neither a professional programmer nor an efficient one as well (I work for a bank and I just started learning web dev/programming a few weeks ago - I hope I'm still welcome! :] ). I'd like to believe, however, that I have some developer skills and am keen on improving those.
My humble developer skills include HTML, CSS, and some JavaScript. I learned most of these through books and an online course on Coursera to give me some sort of "dialogue level" explanation of things. I train myself by:
Doing most, if not all, of the exercises in the books I read and the videos I watch before proceeding to the next chapter.
Planning, designing, coding, and sometimes improving a website once a week and applying things I learned throughout the week and those in the past in these weekly websites.
And more recently, reading web development stuff here on Hashnode.
I love the feeling when I write something and discover the next week that there are easier ways of doing things. Just last week I built a portfolio that had each of my skills and my proficiency level of those (most were 1 out of 5 stars) on cards spread out over my page all in HTML -it wasn't that long but- it was looooong. Then I discovered the Angular's repeat, controller, app systems and found that I could do this in a much cleaner more readable way.
The feeling is almost like the first time you played pokemon and discovering new things and places for the first time.
Also, I still can't get my head over Github. I understand how it works I.. I I just don't know, I can't explain it. I try to place my projects on there but I just mess everything up. Someday.
I'm the opposite of most posts here. I do not schedule a time to practice. I keep a list of things I want to learn and whenever I have downtime I learn them.
Often this happens when:
I get more by taking advantage of the unscheduled waiting than I do out of scheduling a time. Scheduled things tend to get delayed or skipped.
I mainly train on the job - Luckily there is always a new project at work where i have to learn new stuff.
I try to spend 1hour of my work time learning new stuff depending on my workload that day.
I watch training Videos during commuting.
I go monthly to Developer Meet Ups
What an interesting topic.
I spend about 30 min at home to do small programs while learning new languages (currently Haskell). In the process, I also watch live coding sessions on Youtube, and conferences as well. It's refreshing enough after 10h at work.
I have my "training" sample code in a repo on GitHub and I also practice during lunch break at work.
For training exercise ideas, I search on leetcode.
Hi Edouard, this is a good question. I remember hearing some advice that stuck with me: a developer's skills are not improved simply through the work done on the job. The proven way to improve and expand is through deliberate practice.
It sounds as though you have already found that this is easier said than done!
I have a formula that works for me and it comprises of four main tactics.
I schedule in time for practice and learning sessions just as I would my normal work tasks. I deviate from this schedule as little as possible. For daily practice I like sites such as codewars.
I take longer courses with deadlines and assignments to keep me on track. For example, I've taken Andrew Ng's Machine Learning class which had weekly programming assignments alongside the lectures.
I set distance goals for learning broad new skills and track the progress. E.g.: I want to understand an implementation of Deep Learning by the end of January.
I will periodically review my skills and try to objectively decide where I have weaknesses or gaps in my knowledge.
Building in periodic revision is extremely useful, particularly for skills/topics that you don't use in your daily work. I've taken more than 30 courses this year and some of them have partially evaporated because I haven't taken the time to refresh my memory of the concepts.
Finally, I've found that more than many other disciplines, we require an attitude of "always learning". The moment you decide that you know "enough", or "all of it" is the point you consign yourself to mediocrity. The speed of innovation, the rate of change, the pervasive nature of software systems and the sharing of knowledge; these all contribute to a profession that will never be boring.
I hope this helps, good luck!
I split my day. At work I mostly do web stuff (some C# and PowerShell, too), but when I get back home, I can work on my game project, which uses Rust. Since I use different languages for entirely different projects (one can harldy compare building a website to building a 3D game in a system language), it is actually kinda refreshing to sit down and program.
Unfortunately, That's not what happens all the time, since I also have a "real life" which, especially in the last few weeks, keeps me away from the computer when I get home...
I don't really recommend reading code on GitHub. On the one hand, you really don't know the skills of the person who wrote the code and on the other hand: isn't it boring? Take up a good novel instead :) Programming is something you need to practice in order to become better at it (as is the same with most other skills).
Ghazouane
code ♥ surf
Hi Ed, Very short answer but :
My timeline is organised like this :
And also, i play music :) . Music is like code for human brain - without code ;)
Cheers !