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

How i can learn ?

  1. May 8, 2009 #1
    How i can learn programming and make programs
    I'm a zero level programmer
     
  2. jcsd
  3. May 8, 2009 #2

    chroot

    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    Pick a language that seems right for you, then find a tutorial or a book.

    If you have no idea which language to begin with, I would suggest Python.

    There are many tutorials on python.org that you can read. If you get stuck, feel free to ask a question here!

    - Warren
     
  4. May 8, 2009 #3
    thank you very much
    hopping other members to give me their opinions
     
  5. May 8, 2009 #4
    Some of the more common languages:

    python - scripting language, recently created and popularized. contains built in libraries and stuff that are optimized, but programs not terribly fast overall. relatively easy to get started programming and making games in, so I hear. Recommended by many.

    java - high level object oriented; easy to learn and use, cross-platform, not very fast. comes with lots of build in data structures and stuff. garbage collected so you dont have to worry about memory management. good with web junk but not good with graphics. I hate this language.

    C# - sort of like a mix between Java and C++. very enjoyable to program in, very easy to create windows forms and integrate with DirectX for 3D graphics. Made for Windows but semi-cross platform due to Mono. comes with lots of built in data structures and stuff. garbage collected, moderate speed. This is my recommendation.

    Visual basic and VBA - Sort of like simplistic, dumbed down version of C# that is very annoying to program in. Not recommended.

    C++ - high level language, the biggest feature is template meta-programming that allows generic code that is also highly efficient. comes with STL for some basic data structures. takes a lifetime to master, but worth it. manage your own memory (as with all the rest below). not recommended (unless you are planning to become a serious programmer).

    C - old and archaic. more simplistic and older than C++, lacking in high level features, does not provide data structures. excessive use of pointers makes bugs more likely. C programs often more efficient than C++, but not inherently so (C++ can be faster due to templates). not recommended.

    FORTRAN - very old, very archaic. not recommended for you.

    assembly - programming directly at the level the processor understands. other languages are translated into this, but it can be programmed directly (not recommended for you).

    Haskell / Lisp / Ocaml - functional languages, recommended that you get a lobotomy and replace your brain with a wad of rubber bands before using these.

    Ruby / Perl / Lisp - every now and then people claim these languages are amazing and can lead to huge performance increases. My reply: don't be fooled.

    Prolog - academic ******** language with no value

    Pascal / COBOL - some other compiled languages you might hear that I don't care about.
     
  6. May 8, 2009 #5
  7. May 8, 2009 #6

    fluidistic

    User Avatar
    Gold Member

    You could download Emacs and use it to write your programs in the language you want.
    As it has already been said, there are a lot of free tutorial on the web. Try google.
    Maybe a book on a specific language can also be a nice resource.


    I wouldn't put it as so bad. For instance read the intro of this wikipedia link http://en.wikipedia.org/wiki/Fortran and you can imagine it as not being a bad program to learn. It depends on what kind of programs you want to create.
    I enjoyed to learn the basics of Fortran 90 as my first knowledge on programs.
    Good luck.
     
  8. May 8, 2009 #7
    Wow, that's harsh. I agree that C# is enjoyable to program in, but to say that Visual Basic is a simplistic dumbed down version of it is simply not true. And to say that it is annoying to program in is a matter of opinion. The current version of VB is a powerful programming language, in addition to being easy to learn. Anything that can be done in C# can be done in VB. It's simply a matter of preference. They both compile to the same CIL code and they both run under the same dot net framework. The only reason I would recommend C# over VB is that C# is the "in style" programming language. In fact, that was the only reason I learned C#. VB is generally looked down upon by many programmers for unwarranted reasons, as demonstrated by the quoted poster.

    I agree that VBA is not a good recommendation. It is not a standalone programming language. It is intended as a macro programming language to be used only within a host application, such as MS Word and Excel. However, it's worth mentioning that once you learn VB it will be easy for you to use this tool within those applications.
     
  9. May 10, 2009 #8
    If you're starting out, I think VB or scheme would be good before you move on to other languages. These 2 will teach you the general structure of computer programs and how coding works. I'm not very good myself though. (I learn C++).
     
  10. Jul 31, 2009 #9
    If I where you I'd get right into Python. Its a well designed Object Oriented Programming (OOP) language and is very gentle on novices. It will learn you good programming habits and if you're serious about programming, you can easily transfer what you have learned in Python to say C++.

    What you'll need is a Python interpreter which you can get here: http://www.python.org/download/ . Then here are some good tutorials:

    http://www.diveintopython.org/
    http://wiki.python.org/moin/BeginnersGuide/NonProgrammers
    http://docs.python.org/tutorial/index.html

    I saw in another post people saying Dive Into Python is only for experienced programmers but I still recomend it.
    The python docs is a little confusing because it is such a large list of python's features but is realy useful.

    Well then good luck.
     
  11. Aug 8, 2009 #10

    XF1

    User Avatar

    May I also give you some advice. For zero level programmers it can be very difficult at first to understand certain things about programming and when they've only read like 20 pages they decide to give up. My best advice for you to is to think of a problem you would like to solve, could be something simple which has probably been done already but you've never turned it into a program. To solve that problem and make your program your going to probably need help and so you will use google and probably come on forums such as this one and ask for help.. so finally then at the end of solving the problem... you will have the program to prove you solved it and also you probably have learnt about something that if you had read in a book you wouldn't have a clue.
     
  12. Aug 8, 2009 #11
    I use Perl, but hear that Python is easier to learn.

    You can also try using a spreadsheet program to get the idea of how to lay out data and computations to get a desired result.
     
  13. Aug 9, 2009 #12
    I totally agree with you, but what I think you're trying to broadcast to our newcomer here (in a more newcomer-understandable) is: WRITE PROGRAMS!
    Don't just bubble through tutorials. Solve problems that interest you. And if you're done with that one, solve another one. But DO read the tutorials and use what you have learned in the tutorial in your programs and to solve your problems.

    But MUCH more important than reading tutorials is reading code.
    Read other people's code and try to make sense of the code you can't understand.
    If the code is hard, quote is well to help you understand. This way you'll find out what you current limits are and to know what parts of the tutorial you should read.
     
  14. Aug 10, 2009 #13
    Somewhat biased...C++ is more mid-level than high level. C is not archaic, it is still in widespread use today. From experience bugs are equally likely in C and C++, its the coder, not the language that makes the bugs. I would personally recommend C, it is a great language and you will be needing it if you want to work with C++. C should (and is) used in low level coding, and anything higher you may want to use C++ or an other language.
     
  15. Aug 10, 2009 #14
    The only reason fortran is still used in those areas is because physicists are not programmers. Fortan is an archaic and poorly designed language. I can see it being used as an initial stepping stone due to its extreme simplicity but I think C is a better choice for that. It's much more difficult to program any serious program in and will require substantially more code to get anything done, and it will not even teach the basic concepts that are necessary in order to be a good programmer in today's world, such as the use of generic types. I do not think it should not be recommended to new programmers unless they are specifically interested in integrating with people in the physics community that insist on using this outdated language, or they have need of LAPACK.

    It is difficult to program in because of all the features that they designed in an attempt to make it "easy." I find that the lack of strict typing makes it very easy to get bugs and encourages inefficient programming, overuse of words instead of brackets make code less readable and increase the probability of syntax errors, and although it is capable of many things, it is very disorganized making it very difficult to learn....so the net result is a very difficult to use and inefficient language, with the only benefit being a close integration with Microsoft products like Access.

    C is not bad, but C++ is nearly a perfect superset of C. This allows one to start learning C++ and using only the basics at first, and then gradually they can adopt some of the more powerful features that are only in C++, allowing them to expand as a programmer at their own pace. If they are instead using pure C, they start out the same way, but the transition into full fledged C++ power will require a conscious shift from one language to the other.
     
  16. Aug 10, 2009 #15
    I disagree here. Fortran is used because it can be better optimized than other languages such as C. Fortran also has been used for a long time leading to a huge inventory of well debugged code.

    As far as teaching Fortran ... that's a separate issue.
     
  17. Aug 13, 2009 #16
    You could download Emacs and useit to wrote your programs in the language you want. As it has already been sai there are a lot of free tutorial on the web.try google may be a book on a specific language can also be a nice sources.


    Thank you.
     
    Last edited by a moderator: Feb 7, 2010
  18. Aug 14, 2009 #17

    symbolipoint

    User Avatar
    Homework Helper
    Education Advisor
    Gold Member

    Some encouraging articles on the internet are written about Liberty BASIC. It should be easier to learn than Visual BASIC. Liberty BASIC works in Windows operating systems. You can find a good community support website, too.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook