Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Learning python and C#

  1. Sep 21, 2014 #1

    adjacent

    User Avatar
    Gold Member

    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++?
     
  2. jcsd
  3. Sep 21, 2014 #2

    ShayanJ

    User Avatar
    Gold Member

    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.
     
  4. Sep 21, 2014 #3

    FactChecker

    User Avatar
    Science Advisor
    Gold Member

    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).
     
  5. Sep 21, 2014 #4

    adjacent

    User Avatar
    Gold Member

    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. Sep 22, 2014 #5
  7. Sep 24, 2014 #6

    SixNein

    User Avatar
    Gold Member

    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.
     
  8. Sep 24, 2014 #7
    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.
     
  9. Sep 24, 2014 #8

    SixNein

    User Avatar
    Gold Member

    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.
     
  10. Sep 25, 2014 #9
    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
     
  11. Sep 25, 2014 #10
  12. Nov 26, 2014 #11

    harborsparrow

    User Avatar
    Gold Member

    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.
     
  13. Nov 26, 2014 #12

    adjacent

    User Avatar
    Gold Member

    That seems to be a good thing to do. I will do that too. Thanks a lot
     
  14. Jan 5, 2015 #13
    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.
     
  15. Jan 5, 2015 #14
  16. Jan 6, 2015 #15

    harborsparrow

    User Avatar
    Gold Member

    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.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Learning python and C#
  1. Learn Python? (Replies: 14)

  2. Python to C++ (Replies: 9)

Loading...