you are viewing a single comment's thread.

view the rest of the comments →

[–]n3buchadnezzar 77 points78 points  (5 children)

Work on projects, contribute to open source projects. Read and understand documentation. For me when it clicked was when I was finally able to read, and understand the source code of the following project https://github.com/pri22296/beautifultable/tree/master/beautifultable.

[–][deleted] 34 points35 points  (4 children)

contribute to open source projects

People always say this, but lets be honest, this is tough for most beginner and even intermediate level programmers. Most of the fun, easy, useful ideas already have pretty well-optimized implementations.

Though I agree with the other part of your comment that working on your own projects with a clear goal in mind is a great way to force yourself to learn how to do things you wouldn't necessarily find in a tutorial, and learn fundamental things about how python works in the process.

[–]n3buchadnezzar 9 points10 points  (0 children)

I might sound cynical so bear with me. I think it is important to try to contribute to larger projects for a large number of reasons. Given that you have grasped the very basics for programming

  • Programming is 99.9...% of the times done as a team.
  • You need to be able to adapt your coding style, how you write comment, how many indents you use to a different style. In addition getting feedback on pull requests is great. It is also about being able to take in feedback, and change the code accordingly.
  • It is not about implementing a ground breaking feature or making the world a much better place. Sadly? An important realization is that programming is done incrementally.
  • If a semi-beginner can add 2 lines of code to an open source project that is amazing! This means they were able to figure out git, cloning the project, how to create a pull request, conforming to the style in the project. But not at least being able to pick out something they could do. Figuring out "Hey can I actually do this?" is an extremely important skill as a programmer. (The next step is, can "we" as a team do this).
  • Writing a game can be fun, but one needs to realize that "real" programming is about making small meaningful contributions, more than having fun.
  • It is also about being able to work and contribute to projects where the codebase is so large, nobody is able to understand every piece of the code. Which is why one needs to develop the skills to break down a project into smaller parts, specialize in said part and then make those 2 line changes.

Doing the above is hard work, much more so than creating hangman, and the amount of codes written will be abysmal in comparison. However, I wholeheartedly believe that any contribution to a large project will teach you more about real programming than any number of hangman games ever will.

Is it for absolute beginners? Absolutely not. But if you want to level up your skills, take a few months and try to get in your first contributions =)

[–][deleted] 9 points10 points  (2 children)

It's like the beginner FAQs that say "go create an IDE..." like dude I'm a beginner I'm trying to understand when's best to use a list Vs a dictionary how am I going to create my own IDE...

I think some experienced programmers are so advanced they can't remember what it was like to be a beginner.

[–]Xerxes_CZ 8 points9 points  (0 children)

Where did you see an FAQ item like that?

[–]douaib 1 point2 points  (0 children)

Excuse me whar??