So I decided to learn Python as my first programming language... So far I kinda like Python(when i say so far, I mean just now i started it just now), I'm using www.codeacademy.com as a tutorial(more on studying the basics first) and so I'm just wondering will I be able to use my experience in Python as I continue to master it on different programming languages such as C, C++, Java etc. And any suggestions on books regarding Python which assumes an absolute beginner on the programming field. I kinda have a year or so before I can take classes for computer science so using that time will give me huge advantage. And one last thing, can you recommend any tutorials, guides or etc. for deeper understanding on the fundamentals regarding this language.

Recommended Answers

All 8 Replies

one more thing... I'm kinda interested on the web programming side of programming will learning python give me concepts that will of use later with PHP, Java, etc.

The nice thing about Python is it's friendly syntax when compared to Java or PHP.
Also Python is a powerful modular language with many modern programming concepts.

I took the O'Rielly classes for Python and I loved them. The guy I worked with was amazing, easy going, and was very open to discussion. In fact, I learned quite a bit from him.

The down side is that it's a "pay to learn" service. The upside is that you get a real working environment to learn in (a sandbox) and you learn real world working concepts, as well as "good code design" and patterns.

If you are willing to shell out some cash,
http://www.oreillyschool.com/

Otherwise, http://www.tutorialspoint.com/python/index.htm is good, and picking up a book on Python is never a bad thing.

Also, while old and I think it requires you use python 2.3 to complete (due to library issues), http://www.pythonchallenge.com/ was very fun to go through for a while. It's like a puzzle for coders. It's old, so many (if not all) the solutions are available through a quick google search if you get stuck.

Will I develop bad habits with python? C++ is the first language on the curriculum will it be better if I learned C++ first?

Learn C++ first! It will unspoil you!

You can develop bad habits with any language!
There are certain programming rules to follow.

YouTube and DropBox are written in Python, but most of those silly little Google and Apple apps out there are written in Java or Java Script.

It depends on your perspective...

Python is an incredible development tool if you are working with a team that is developing in Python.

The major PROs of Python are:
1) It's memory managed for you (for 99% of typical uses).
2) It can be used to quickly expand various portions of your project quickly, and since it is all written with a strict format all team members will be able to read what you are doing and how.
3) It can "easily" compile down to C++ using the right tools, but doing so will probably not reduce overhead since the python package is included in the binary/executable.

The drawbacks to this are:
1) You lose the understanding of "why." By this I mean, you are no longer using true pointers, and most of your data types are loosly written (meaning they can change on the fly. If you need a var to be an int it's an int, but in the next line it needs to be a string, then woot! You got a string! (this is different than CASTING in C++ or other string type languages.)

2) You are trusting the python run time VM to memory manage for you. There really isn't anything wrong with this, other than the overhead of a VM running.

3) You really aren't going to want to edit that C++ code that the python compiles to (as it is "optimized"), and I am not entirely sure you can edit it in some cases. It is most likely not pretty to read since it's automated in creation, and even if it was easy to read there is no guarantee that people will follow the same naming/stylistic conventions.

TL:DR;

Learn Python first if you want to get moving quickly, and get basic concepts and coding pattern/design. You will then have to go back and learn about pointers and memory management. It's very difficult to take this path (however, I did it. And I am still learning through a lot of trial and error and peer reviews).

Learn C++ first if you want to learn how to program "right." For the most part, if you learn C/C++ and understand all the nuances of how variables are passed by reference or pointer, you get the root of pretty much all other common modern languages including JAVA/C#/Python/JavaScript/PHP/etc...

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.