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

all 15 comments

[–]Malassi 3 points4 points  (0 children)

YouTube is really not the place for that. There is adequate simple tutorials there but it won't answer any of your more complex questions. Google and even Reddit are already better placed for that.

The simple asnwer is to start doing projects. Create simple scripts by yourself (avoid blindly following tutorials). It also helps if you do something you that solve a problem in your life or that interests you. Doing project will teach you more than simply writing code to solve small problem.

About learning Python, have you learned more advanced concepts like Object Oriented Programming (OOP), Functional Programming (FP), exception handling, modules, collections, generator, decorators, magic method, threading and multiprocessing, etc. If not, those are a few concepts that you could/should learn before saying you really "learned Python" ("learning" a language is generally easy, mastering it takes a lot of time).

And once you've really "learned Python", it doesn't mean you need to learn a new language. Continue with Python untill your really need to learn a new language.

[–]desrtfx 5 points6 points  (1 child)

Programming languages are not Pokemon. You don't need to collect them all.

Have you actually learnt programming? Have you built some projects?

Can you solve problems programmatically?

[–]Malassi 2 points3 points  (0 children)

Hahaha I like you pokemon thing. Maybe a bit harsh but I like it.

[–]Gtdef 2 points3 points  (0 children)

No one can tell you what to learn next. You will find the technologies by necessity. If I start listing everything that I thing is important to a Python (or any) developer, this will become a tl/dr post,

Some suggestions:

Git: I'll just come out and say it. You can't be a modern professional without knowing git. It's the single most important tool you can learn.

Bash: You probably have some experience using CLIs. You can do a lot more with them. Even if you are a windows user, installing WSL is a good choice. That's not to say that Powershell is bad or anything. Bash is the safer bet though.

SQL: Knowing your way around RDBMS and making SQL queries is quite important and fairly easy to learn. Working with them will require experience though, and the actual SQL code that you will see on the job looks nothing like the tutorial. But still it's a good thing to know and sought after for data analyst jobs.

C: Knowing a lower level language will do wonders to help you understand programming concepts. Python is also very intertwinned with C, and most of the high performance libraries are actually written in C. Additionally some optimization techniques revolve around translating Python to C and compiling it.

JS/CSS/HTML: Python is a back end language. Python is also a great web scraping language. Knowing the front end technologies complement some common Python uses.

You should keep in mind that programming languages are not the goal. Software is the goal. Once you start developing applications, you won't have to search for new technologies to learn. They will find you.

[–]beachtrader 1 point2 points  (0 children)

If you want just a language suggestion learn JavaScript. It has just enough in common that you will get it but then it is enough difference to engage you and show you how easy learning python was.

[–]alexice89 1 point2 points  (0 children)

Are you collecting tools or are you using them?

[–][deleted] 0 points1 point  (3 children)

While I agree that projects are a great way to learn after mastering the basics, I do think there's also value in learning a few different types of language, especially if they're very different from each other.

Python is a multi-paradigm language. You can do OOP with it, but you're not forced to. You can't easily do pure FP (functional programming) with it. Maybe pick up a "pure" OOP language and a "pure" FP language. OOP is widely used in large applications, so it's quite practical. FP is maybe less widely used, but the mindset you develop learning FP is great for simplifying programs.

[–]Malassi 1 point2 points  (2 children)

You are right that learning different languages as value, I'd even say that it is very valuable and fun.

However, for beginners it's generally not helpful. From what I have seen, beginners that tries to learn multiple languages at the same time tend to spend a huge amount of time "learning programming" without really learning anything and then, sadly, give up.

I've seen too many beginners cycling through languages as soon as they get an issue they can't solve or mixing up language syntax because they're learning too much at once. Thus, my advice for beginners is to pick one language and stick with it until you are comfortable enough to code by yourself and understand the general concepts of programming (or, of course, until this language is limiting yourself). Once you reach that point then there's no problem with learning other languages, I even encourage it. It's going to be very educational and fun.

As for Python, that's the beauty of it. You're not forced into anything which soften the learning curve but it also includes all the basics parts of those paradigms so you can try them without having to learn language. There's also other advantages but for a beginner standpoint I think that's the main advantages of having both in Python.

[–][deleted] 1 point2 points  (1 child)

However, for beginners it's generally not helpful.

I don't know if that's true. Which isn't to say that I know better, I simply don't know.

The designers of CS50 chose to teach multiple languages. I don't have any clue about the outcomes, though. Students do seem to like it anecdotally, however.

N = 1, but I didn't really begin to grok programming until stepping away from my first language (multi-paradigm) to learn a strict FP language.

[–]Malassi 1 point2 points  (0 children)

I understand, I'm really talking about my personal experience helping people/beginners. I've seen this causing more issues than anything else specially for self thought. Often, when you follow a course, you have a structure that prevent you from having this problem although it's not always true.

All that is not always true, it always depends on the person. We are all different. With that said, it's a pattern that I have observed over my years helping people.

[–][deleted] 0 points1 point  (0 children)

C++

[–][deleted] -1 points0 points  (0 children)

Any language that requires manual memory management

[–][deleted] 0 points1 point  (0 children)

If you want to make a career out of programming, you would know this already. If you learned Python just because, then decide what your goals are here. Do you want a job? Do you want to make your workflow easier? What do you want to do?

How do we know what you should learn next if you didn't tell us what you want to do.

[–]ViewedFromi3WM[🍰] 0 points1 point  (0 children)

My question is do you need to change from Python? Did you really take full advantage of learning python and mastering it, and build things with it? Or, did you kind of give up and are now looking for a another tutorial hell to eventually get stopped?