SuperMiguel said:
Im a Comp Eng student, and i have about 2 month of vacation, but i really got nothing to do.. I know C better than python, just wonder if in this 2 months, what you guys recommend i should get better at C or at python?
Note: those are the only two languages i know so I am open to other recommendations.
Hey SuperMiguel.
For your question, and given you are a Computer Engineering student, I recommend you progressing with C.
The reason behind my suggestion is that C is a kind of low high-level language that is used extensively for multi-platform design, and in particular for environments where you use specialized forms of the language to directly program custom hardware platforms.
Being a computer engineer means having a tendency to work in these kinds of environments as opposed to the much higher level ones commonly used in the standard x64 or similar environment on say a Windows OS.
The other reason for getting C down is that once you really know what is going on with C, you will be able to take that knowledge and apply it to anything else. A few examples are in order:
Firstly, if you are able to debug anything effectively in C whether it's some kind of memory access error (which represents a majority of the problems), some kind of stack error, allocation error, device error, library error, and so on, then when you move to another environment like say an interpreted language like Python or even something like .NET, you will be able to at least get a pretextual picture of what is probably going wrong, because you will understand things at the memory, device, and other levels.
Secondly, because most procedural languages are pretty much the same, knowing one in a great depth is easily translatable to another and the depth of knowing one is a lot better than just knowing a lot without any deep context or clarity.
The thing is that when you develop, you will have to adapt to whatever is used and whatever is required to get what you need done which means that at some point, you will probably have to pick up something quick that has a reference point to what you have done in the past like say C.
I don't know if you have specific goals though that deviate from this, and it's important to also state that learning Python for the sake of learning because it is interesting, or has a specific library, or anything else is more than enough of a reason to choose Python.
If you have a specific goal in mind or at least a directed form of investigation, it would benefit the readers if this was made clear.
One thing that I have learned in my experience is that it's a lot easier to do something when you have a clear direction. When the direction is not clear, then it becomes hard to really stick to something and things tend not to get done when you just do things that are all over the place.
Investigation though does not mean that everything goes according to a plan that is down the second: it will involve unexpected discoveries, lessons, and its share of failures.
The basic idea though is to set a few very simple, but flexible goals that have enough room for investigation, discovery, and relaxation of rigidity, but definite enough so that at the end you actually make what you would consider substantial progress to getting that particular thing done.