And now what?


#1

The course in Python is over and it was a really nice travel. I learned so many things..... BUT, now what?
Can anyone tell me where couls i find more information, more knowledge about Python? I learned about Python Syntax but i want to learn more. Can anyone help me??


I Finish thiss course, what should i do to move forward?
#2

You can try solving problems on http://www.codeabbey.com/ or http://www.rosalind.info.

There is also http://learnpythonthehardway.org if you want to learn more about python.


#3

Thank you very much. I'll try them


#4

The course definitely is useful as an intro to help us understand the basic syntax and it should be a good foundation to explore Python further.

'Learn Python The Hard Way' would be a good next step, more emphasis is put upon the reader reading through the Python Documentation as well as resources on the internet in order to learn about the syntax.

Once you're done with that, check out Invent with Python - it'll allow you to apply the stuff you've learned in Codeacademy since it provides the source code for you to tinker with as you please.

Think Python (PDF) is more traditional but still very useful since it elaborates upon the theory more thoroughly. Various courses on MIT OpenCourseWare are also much more heavy on theory

Alternatively, you can start programming your own small programs, reading through the Documentation yourselfwhen you don't understand certain things and progressing that way.


#5

I readily second this (moreover I'm the author of CodeAbbey). However I dare to advice also to download these useful official Python resources:

https://docs.python.org/2/reference/ - language reference - it is "the bible" of the Python syntax, rules of applying operators, calling functions etc, etc.

https://docs.python.org/2/library/index.html - standard library reference - and that is a "CounterPart" to previous. It contains description of all library functions for dealing with strings, numbers, files, and anything up to web-related stuff.

These two sources are where any programmer from beginner to senior usually fetch the additional info on everything they use in Python.

Now I'll go and try Python course here at CodeCademy to see how I can improve my CodeAbbey so it may help better in continuing your (our!) practice...


#6

Thanks everyone for the advice and the help you offered to me. I'll try with the 'Learn Python the Hard Way'. I'll start downloading the links i need.... See you :smile:


#7

Thanks for asking this question @mpampis012, as I've been wondering the same. Now I know where to move on from here :smile:


How to create a variable in python
28. Conclusion: Part 2 -- Why is it wrong? Writes that syntax errors and token
#8

codecademy is ROCK..!!! thanks everyone for all your help..nice to see you helped me(us) until this final part..can't say anything...hope we can meet again...thanks once again..:cry: alhamdulillah..


#9

I'm not a programmer. So this is just my opinion and hope this helps you.
Let's start with variable and syntax;
Simple sample code:
a = "hello!"
print a

We have to read code from right to left because interpreter this does, python is a smart language and you have not to declare variable type, python will do this for you. Reading from right interpreter finds "hello" then create in memory a container and load value "hello" in this container, further interpreter will find "=". Symbol "=" isn't equal, meaning for interpreter is "create a link(or reference)" between container that store value "hello" in memory and symbol "a" which is stored in a global symbol table. Now we have two areas one is "global symbol table" that contain symbol "a" and second one container that contain a value type in our case "hello". Between these areas is a link that point symbol "a" to value "hello". When interpreter finds "print a" will follow link that assign to "a" a value stored in a memory container and outputs "hello".
But lets take next example:
a= "hello"
a="world"
print a
The output will be "world". Why.
Interpreter will read from right to left, finds "hello", create a container(area) in memory that store string type value "hello" further create a link between container and symbol "a" stored in symbol table. Further interpreter will find value "world", then create a new container and store in value "world", further will create a link between this container and, hoooops!!!!! interpreter finds symbol "a" already there in symbol table. So then interpreter will remove link between symbol "a" that point to the container which store value "hello" and relocate link to "a" and container that contain value "world", will not create another symbol "a" will reuse the existing one. Further interpreter finds "print a" then outputs "world". So, we may say that, interpreter will consider valid only symbols that have a link, the others will be ignored. Notice, container that store "hello" still exist in memory. Container that does not have a valid link to a symbol table will be deleted trough garbage collector, i will not insist on this.


#10

Now lets take this example:
a= "helo"
print a
a = "world"
print a
Interpreter will create a container that store "hello" then create a link between container and a symbol "a" that reside in global symbol table, further interpreter will finds "print a" and output "hello". But interpreter still have to continue, will read from right to left a string type value " world", will create another container in memory, then create a link between container that store "world" and, hooops!!! will find in symbol table "a". Interpreter will not create another symbol "a" will remove the link that point to "hello" and relocate to container that store "world", further will prints "world". Notice again, container that store "hello" will exist in memory as a container but does not have a valid link to a symbol and will be mark for deletion trough garbage collector. Values container is a little bit more complex than in this example but for beginning is more than enough to understand. When you get strange outputs please think about this.


#11

Declaring a variable:
a = "hello"
This is a string type, interpreter will create a container that store a string type values in memory because it "see" this variable is a string.
You may declare:
a = str("hello")
it still valid and works fine but this not make sense to call str() method because python does this for you.

Notice!
Variable "a" does not store anything, "a" is just a simple symbol, nothing less nothing more. Through this symbol interpreter can identify and get stored values in memory container following the link between them. When we talk about global variable actually we talk about global symbol table.
When we use functions then will be created and destroyed another type of table "function symbol table" that is used for local scope.
Both "global symbol table" and "function symbol table" use same special memory area where is created containers that store values.
A global symbol may have multiple versions of containers data but only the latest one that have link(reference) is available. A global symbol may have hundreds of versions, those versions will be deleted through garbage collector.