Should I Improve My Skills in C or Python During My Vacation?

  • Thread starter SuperMiguel
  • Start date
  • Tags
    Python
In summary: C, then use C. But, if you really do know C better, you can always code in C from Python. But that's a different subject.In summary, I recommend learning C during your vacation. As a Computer Engineering student, C will be more relevant to your future work and learning it will provide a strong foundation for understanding other languages. However, if you have specific goals or interests, Python may be a better choice. Ultimately, the most important thing is to have clear goals and direction in your learning process.
  • #1
SuperMiguel
110
0
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.
 
Technology news on Phys.org
  • #3
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.
 
  • #4
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.

I know C and Python and am familiar with embedded hardware e.g. Arduino but I am approaching this as a CompSci BSc and hobbyist programmer - not CompEng or CSEE.

From where I sit, it doesn't matter which you learn. All imperative languages work in the same way. If you can write fibonnaci or prime number search in C or in Python, you know how do it in the other, and also any other imperative lang like Java, Ruby, Ada, Pascal, Fortran etc. You might not know the specific syntax of e.g. a for loop in Pascal but you understand what it is and when to use it, and you can look up the syntax in 5 seconds on Google.

I could write

for a := 1 to 5 begin
print a*a
next a

And you understand that - despite it being neither Python nor C. (If you don't understand that, there is a problem).

So, not counting the ENG part of your course, learn the one that you like better, that let's you code quicker, had better tutorials, whatever. It won't really matter from a CompSci point of view.

I don't understand the specific requirements of the ENG part but I know that both Python and C (as opposed to C++) are well used in engineering circles. C obviously produces faster and smaller code than Python, but then again it takes much longer to write (and it depresses me with how much longer it takes to write and debug).

For general purpose programming work I find Python's performance is adequate. Even driving Arduino, even only limited horsepower systems like a Raspberry Pi, I've never had a speed problem with Python. If I did, that's fine, I'd use C++ where I needed to.

If you're looking at other langs then from a CS/hobbist point of view, Java is a must for android and websites, Haskell because always good to have at least 1 functional language to stretch your brain! And of course C++ or C# for PC development. Objective C (for iPhone) as well. Perhaps Javascript, very useful for websites. I would avoid PHP, it's a mess and Python/Java do websites.

I don't know if you do a lot of stuff like washing machine controllers in in ENG part of your course; I imagine you probaby use a custom realtime language for those. I think writing games is good practice there, and lots of fun. A game is a real time control system with zero lag tolerance.
 
Last edited:
  • #5


I would recommend focusing on improving your skills in both C and Python during your vacation period. Both languages have their own unique strengths and applications, and being proficient in both will make you a more well-rounded and versatile computer engineer.

If you have a particular project or goal in mind, then I would suggest prioritizing the language that is most relevant to that project. However, if you have no specific plans, I would suggest allocating time to both languages and exploring their different features and applications.

Additionally, as a computer engineer, it is important to continuously learn and stay updated on new technologies and languages. You could also use this time to explore other programming languages that may be useful in your field, such as Java or MATLAB.

Overall, my recommendation would be to use this vacation period to enhance your skills in both C and Python, while also exploring other languages and technologies that may be useful for your future endeavors.
 

1. How long does it take to become proficient in C or Python?

The time it takes to become proficient in C or Python varies depending on the individual's learning style, dedication, and prior experience with similar languages. On average, it may take several months to a year to become proficient in either language.

2. Which language is more difficult to learn, C or Python?

Both C and Python have their own learning curves, but many people find Python to be easier to learn due to its simple syntax and dynamic typing. C, on the other hand, has a steeper learning curve due to its low-level nature and strict syntax rules.

3. Will learning one language make it easier to learn the other?

Yes, learning one language can make it easier to learn the other. Both C and Python have similar programming concepts, so understanding one can help with understanding the other. Additionally, learning how to code in one language can also improve problem-solving skills that can be applied to any programming language.

4. Which language is more commonly used in the industry?

C is a widely used language in industries such as software development, operating systems, and embedded systems. However, Python is also gaining popularity in various fields, including data science, web development, and artificial intelligence. Depending on the industry and specific job role, one language may be more commonly used than the other.

5. Can I become an expert in both C and Python?

Yes, it is possible to become an expert in both C and Python. However, it may require a significant amount of time and dedication to master both languages. It may also be beneficial to focus on one language at a time and then gradually learn the other to avoid confusion and improve overall understanding.

Similar threads

  • Programming and Computer Science
Replies
9
Views
1K
  • Programming and Computer Science
Replies
8
Views
1K
  • Programming and Computer Science
Replies
1
Views
723
  • Programming and Computer Science
Replies
8
Views
867
  • Programming and Computer Science
Replies
16
Views
1K
  • Programming and Computer Science
Replies
17
Views
2K
  • Programming and Computer Science
2
Replies
66
Views
15K
  • Programming and Computer Science
Replies
5
Views
1K
  • Programming and Computer Science
Replies
5
Views
601
  • Programming and Computer Science
Replies
10
Views
958
Back
Top