Learning Python & C#: Advice from Real Programmers

  • Thread starter adjacent
  • Start date
  • Tags
    Python
In summary, the conversation revolves around the topic of learning multiple programming languages and the concern of forgetting one language while learning another. The participants also discuss the differences between Python and C#, as well as the possibility of hacking C# apps and whether to switch to C++ for security reasons. They also touch on the importance of selecting the right programming language for a specific job and the potential benefits of knowing multiple languages in the IT industry.
  • #1
adjacent
Gold Member
1,552
63
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
  • #2
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 adjacent
  • #3
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 adjacent
  • #4
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:
 
  • #6
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.
 
  • #7
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.
 
  • #8
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.
 
  • #9
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 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 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 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 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 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 adjacent

What is Python and C#?

Python and C# are two popular programming languages used for a variety of purposes, including web development, data analysis, and game development. Python is an interpreted language known for its simple syntax and versatility, while C# is a compiled language known for its performance and object-oriented approach.

Why should I learn Python and C#?

Learning Python and C# can open up a wide range of career opportunities in the tech industry. Many companies use these languages for their projects, and having knowledge of both can make you a more versatile and valuable programmer. Additionally, Python and C# are both relatively easy to learn and have a large and supportive community, making it easier to get started.

What are some tips for learning Python and C#?

One of the best ways to learn Python and C# is by practicing regularly. Start with simple projects and gradually work your way up to more complex ones. It's also helpful to read and study code written by experienced programmers, as well as participate in online forums and communities to ask for advice and feedback. Don't be afraid to make mistakes and learn from them.

How long does it take to learn Python and C#?

The time it takes to learn Python and C# depends on your dedication and effort. With consistent practice and dedication, it is possible to become proficient in both languages in a few months. However, mastery of these languages can take years of experience and continuous learning.

What are the key differences between Python and C#?

There are several key differences between Python and C#. Firstly, Python is an interpreted language, while C# is a compiled language. This means that Python code is executed line by line, while C# code is converted into machine code before running. Additionally, Python is a dynamically typed language, meaning that variables can change data types at runtime, while C# is statically typed. Finally, Python has a larger focus on simplicity and readability, while C# has a stronger emphasis on performance and object-oriented programming.

Similar threads

  • Programming and Computer Science
Replies
17
Views
1K
  • Programming and Computer Science
Replies
1
Views
728
  • Programming and Computer Science
Replies
8
Views
878
  • Programming and Computer Science
Replies
3
Views
317
Replies
6
Views
1K
  • Programming and Computer Science
Replies
29
Views
2K
  • Programming and Computer Science
Replies
4
Views
2K
  • Programming and Computer Science
Replies
2
Views
1K
  • Programming and Computer Science
12
Replies
397
Views
13K
  • Programming and Computer Science
Replies
17
Views
2K
Back
Top