In my approximately five years of professional IT experience (a weird mix of QA, Dev, DevOps) I had the honour of looking at CVs, reviewing candidates and teaching or guiding more junior team members. Let's say my "mentoring" started three years ago.
In these three years, I have seen a lot of people, both my teammates, colleagues and others, like open-source participants, make the same fundamental mistake. This mistake is something which even the wise Vesemir told us not to do. He said: "Don't train alone; it only embeds your errors."
This might sound funny. Taking quotes from fictional characters, but it is something that I think is crucial. I have many times seen starting programmers learn something wrongly and burn it into their mind and then spread the harmful code like a disease everywhere in the codebase.
I want to emphasize that I don't think this is their mistake. Internet is big, dark and full of errors. They are trying, they are learning alone, and they should be praised and encouraged. But they should also start with peer reviewing as soon as possible. This is the "cure" of sorts. Internet is also full of beginning programmers, and not everyone is lucky enough to get a mentor. What I am saying is do things together as soon as possible. Work together but try to learn separately. This will allow all of you to learn new things, share knowledge and discuss better ways, not allowing you to get comfortable with what you know and lowering the risk of embedding wrong ideas into your daily routine.
Now how to find a place where you could code and someone will review your code for free? Github is a start. You can explore repositories; there is a button for it on the main page. You can filter by topics and languages. Pick a smaller project, look through the issues, play with it a bit. Smaller projects tend to be more open to newcomers. Not only do you learn, build meaningful things, but it will also show on your CV.
Good luck and Happy Coding!
Top comments (2)
For the point about Github, as a junior developer which projects did you advise me to start with: contributions to libs and frameworks, or functional projects? really I'm trying always to have free time with my work tasks, but i didn't" know how to start with open source contribution!
How to start with contribution is really a hard question.
A lot of projects and organizations do not have the
CONTRIBUTING.md
but if you send a message to them or create an issue with "I like your project. how could I help out?" type of question, not only your first contribution might be theCONTRIBUTING.md
and other guides but you might also get a nice issue that was postponed due to a not enough hands and low priority. These small issues are a great way to familiarize yourself with the project.In regard to Which type of project to start with, Library/Framework or Application. Go with the thing that is easier for you to imagine, something where the business logic and general usage are understandable. This helps a lot if you can visualize in your head all the use cases. The imagination is needed since OS projects tend to lack requirements and throughout specifications.
Does it make sense? Should I elaborate on something?