Learning Python & C#: Advice from Real Programmers

  • Context: Python 
  • Thread starter Thread starter adjacent
  • Start date Start date
  • Tags Tags
    Python
Click For Summary

Discussion Overview

The discussion revolves around learning multiple programming languages, specifically Python and C#. Participants share their experiences and concerns about mastering these languages simultaneously, the implications of language features, and the relevance of different languages in professional settings.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested
  • Conceptual clarification

Main Points Raised

  • One participant expresses concern about forgetting Python while learning C#, questioning whether to focus solely on Python first or learn both simultaneously.
  • Another participant argues that programming languages share similarities and differences, making it unlikely to forget one language when learning another.
  • Some participants mention that mastering the fundamentals of each language is crucial, while others suggest that practical experience is key to retaining knowledge.
  • There are discussions about the ease of creating GUI applications in C# compared to Python, with references to tools available for Python.
  • Concerns are raised about the security of C# applications, with suggestions to consider Java or C++ as alternatives.
  • Participants discuss the importance of choosing the right programming language based on application domains and business requirements.
  • One participant challenges a claim about C# being strictly object-oriented, suggesting that this may not be entirely accurate.
  • A participant shares their method of organizing code across different languages to aid in retention and reference.

Areas of Agreement / Disagreement

Participants do not reach a consensus on whether it is better to learn Python and C# simultaneously or sequentially. There are differing opinions on the implications of language features and the best practices for learning multiple languages.

Contextual Notes

Some statements reflect personal experiences and opinions rather than established facts. The discussion includes various assumptions about language features, security concerns, and the relevance of different programming languages in professional contexts.

adjacent
Gold Member
Messages
1,552
Reaction score
62
I have am learning python nowadays. I want to learn C# as well. But I fear that I may forget some things of python if I learn C#. I would like to know, from real programmers how you learn all types of programming languages and still remember them.

I still haven't learned much python. Just simple stuff. Should I just focus on learning python until I fully master it? Or is it ok to learn both at the same time?
P.S C# seems to fulfill most of my requirements but python does not. However, it's still possible in python and I don't know how to use it. For example: It's really easy to make a windows form app using Visual studio but not in python. You know...PyQT and stuff.

P.S2. I have heared that it is very easy to hack C# apps. Just .NET reflector can get it's code in no time. I don't want this to happen to my codes. Should I move to C++?
 
Technology news on Phys.org
Python is a programming language worth enough to be learnt. About building GUIs with it, there are tools that you can use to build your GUI in a WYSIWYG manner and they generate the python code automatically.
I don't know about hacking C# programs, but I guess you can use Java instead. They're similar in some sense but Java is used more than C# I guess. So If you don't want to use ASP.NET, I guess its better to learn Java.
And about forgetting one language after learning another. That's very improbable. Programming languages are very similar in some senses and very different in other senses. Both similarities and differences makes it very improbable for that to happen.
About similarities, all languages have facilities for conditionals and loops. Most of modern ones support error handling. Most of them have group data types like arrays. And some of them have standard libraries. And many other things. So you won't forget such things. Also in some cases, languages achieve a particular goals with very similar means which makes it easy for programmers of those languages to remember things.
About differences, some languages have features you just can't forget because those features somehow define that language. For example in python, indentation is significant to compiler and is used for building blocks. At least I haven't heard of any other language with that feature. So that feature is a defining feature of python in my mind and I won't forget it.
Also different languages support different number and kinds of paradigms. For example C# is object oriented in a way that you can't have non-OO programs with it and that's not something you can forget. But python is object oriented in an optional sense. So you can have structural programs too. There are also functional languages which seem so different that their paradigm can be known as their defining feature.
About other things. You're just supposed to master the fundamentals, the feels and pros and cons of a language. Other things can be looked up in a quick guide pretty quickly.
So I think there is no problem in learning several languages even in parallel. You just need to have enough practice in both of them and try to find some defining features in each.
 
  • Like
Likes   Reactions: adjacent
I will assume that you are interested in becoming a professional programmer. In that case, while Python is a good modern language, I would recommend that you also become familiar with a language that is more main-stream: C, C++, Java, C#. They have a lot of similarities inherited from C. I know programmers who really like Python, but they don't end up using it much on the job.
If you are only going to program for your own use, you can go a long way with Python (and it's extensions).
 
  • Like
Likes   Reactions: adjacent
Thanks Shyan, for the long and interesting post.
Thanks to FactChecker as well.
I have decided to learn both C# and python at the same time. :rolleyes:
 
adjacent said:
I have am learning python nowadays. I want to learn C# as well. But I fear that I may forget some things of python if I learn C#. I would like to know, from real programmers how you learn all types of programming languages and still remember them.

I still haven't learned much python. Just simple stuff. Should I just focus on learning python until I fully master it? Or is it ok to learn both at the same time?
P.S C# seems to fulfill most of my requirements but python does not. However, it's still possible in python and I don't know how to use it. For example: It's really easy to make a windows form app using Visual studio but not in python. You know...PyQT and stuff.

P.S2. I have heared that it is very easy to hack C# apps. Just .NET reflector can get it's code in no time. I don't want this to happen to my codes. Should I move to C++?

Programming languages mostly use the same theory behind the scenes. So really, it boils down to syntax and libraries. And these will be based on application domains.

Pick the best tool for a job. If the only tool you have is a hammer, all problems are nails.
 
SixNein said:
...
Pick the best tool for a job...
Pick or to be picked ?:nb). I think it is up to the deal result between the customer and the company's CTO or technical leader. IT software companies tend to use a plethora of technologies to resolve their customers' software business requirements, which involve not only new products' development but also trouble-shooting current systems' issues as well as updating and/or upgrading out-dated software systems or components. The more programming languages people know, the faster and more commitment to the product in questi on they perform and possess.
 
Medicol said:
Pick or to be picked ?:nb). I think it is up to the deal result between the customer and the company's CTO or technical leader. IT software companies tend to use a plethora of technologies to resolve their customers' software business requirements, which involve not only new products' development but also trouble-shooting current systems' issues as well as updating and/or upgrading out-dated software systems or components. The more programming languages people know, the faster and more commitment to the product in questi on they perform and possess.

Generally companies are already working in a specific application domain, and they have tried to pick what they think is the best language for their domain.
 
SixNein said:
Generally companies are already working in a specific application domain, and they have tried to pick what they think is the best language for their domain.
Yes, I agree. Programming languages are adhered to an application domain which is driven by a business one. I think it's because of the different business requirements that, for example, an outsourcing company may set up development teams to handle their customers' requests of IT business services. And they don't often tend to hire more new people to work on the projects that require a new language or on those whose new features to be added need external calls to the libraries written in another. Large companies such as Microsoft, IBM, Sun etc deal with different business objectives and domains though.
This is a list of 10 top programming languages mostly required in 2014.
http://www.eweek.com/developer/slideshows/top-10-programming-languages-for-job-seekers-in-2014.html
 
  • Like
Likes   Reactions: FactChecker
  • #11
I am constantly needing to work on code in a variety of languages. I keep a copy of all the code I have ever written and I file it very carefully, by language and version. Often, if I haven't worked in a language for a while, I won't remember exact syntax, but I can remember that I did that before and just go glance at my old code, and that gets me up to speed again.
 
  • Like
Likes   Reactions: omgwtfbyobbq, FactChecker and adjacent
  • #12
harborsparrow said:
I am constantly needing to work on code in a variety of languages. I keep a copy of all the code I have ever written and I file it very carefully, by language and version. Often, if I haven't worked in a language for a while, I won't remember exact syntax, but I can remember that I did that before and just go glance at my old code, and that gets me up to speed again.
That seems to be a good thing to do. I will do that too. Thanks a lot
 
  • Like
Likes   Reactions: Greg Bernhardt
  • #13
adjacent said:
I have am learning python nowadays. I want to learn C# as well. But I fear that I may forget some things of python if I learn C#. I would like to know, from real programmers how you learn all types of programming languages and still remember them.

I still haven't learned much python. Just simple stuff. Should I just focus on learning python until I fully master it? Or is it ok to learn both at the same time?
P.S C# seems to fulfill most of my requirements but python does not. However, it's still possible in python and I don't know how to use it. For example: It's really easy to make a windows form app using Visual studio but not in python. You know...PyQT and stuff.

P.S2. I have heared that it is very easy to hack C# apps. Just .NET reflector can get it's code in no time. I don't want this to happen to my codes. Should I move to C++?

1) Same way people speak multiple languages. Just don't worry about it. Most programmers are familiar with multiple languages.

2) Hard to say, depends on you. I personally would stick with one until you are proficient in writing code. The syntax of the language is not the hard part. The hard part is thinking algorithmically.

3) Windows desktop GUIs are a little easier in C#.

4) Everything is hackable. Don't worry about it at this stage.

5) I think you're thinking too hard about a problem that doesn't exist. All of these questions you have will vanish once you are proficient with a programming language, ANY programming language.
 
  • Like
Likes   Reactions: adjacent
  • #14
Medicol said:
This is a list of 10 top programming languages mostly required in 2014.
http://www.eweek.com/developer/slideshows/top-10-programming-languages-for-job-seekers-in-2014.html

Since when was HTML 5 a programming language?
 
  • Like
Likes   Reactions: harborsparrow
  • #15
adjacent said:
I have heared that it is very easy to hack C# apps. Just .NET reflector can get it's code in no time.

It is possible to view the intermediate "virtual machine" code for either Java or C#.NET. However, this is low-level code, and many programmers do not know intermediate code and so it will be useless to them. But if you are still worried, you can run your executable file through an obfuscation program, making it highly unlikely that anyone will be able to read it.
 
  • Like
Likes   Reactions: adjacent

Similar threads

  • · Replies 17 ·
Replies
17
Views
2K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 29 ·
Replies
29
Views
4K
Replies
6
Views
3K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 17 ·
Replies
17
Views
3K
  • · Replies 13 ·
Replies
13
Views
3K