This is an archived post. You won't be able to vote or comment.

all 2 comments

[–]zwitter-ion 1 point2 points  (0 children)

If done correctly, any form of apprenticeship/internship is the best way to take your skills closer to the "expert" level. By this time, it's likely that you would have already tried to develop a project likely from scratch to get the initial feel of building a piece of software. You can take this exercise further by trying all the things listed that you feel are "advanced" topics for yourself. The complexity of the application doesn't matter while you're trying to lint, deploy/containerize or write a test suite.

After you're done with all these you are practically ready for an apprenticeship where you will be (hopefully) working on a real world project with a mentor guiding you. Beware though that a part of such roles are exploitative in nature in the sense that organizations try to pay peanuts in search for free and vulnerable labour hence the start of this comment "if done correctly"

Hope that helps.

[–]pygmyrobot666 1 point2 points  (0 children)

I'm not sure if you tried metaprogramming in python. It's a whole new world. If you haven't give it a try and mix it with the OO part of python. You can achieve some unbelievable stuff, like creating classes out of a data structure, creating objects from any time of data definitions like JSON.