Wanting to start programming

Discussion in 'Off Topic Area' started by JackMcCann, Jun 13, 2011.

  1. JackMcCann

    JackMcCann Valued Member

    Hey guys,

    I really want to learn how to program. I know its a strenious task and also it takes a long period of time to learn how to write appropiate code but I am so interesting in learning.

    I have good mathematical ability and a work ethic. But I cannot find a course which I can follow? Do you have any suggestions of courses which work online? Ones which are good for a progammer starting from scratch like me.

    Furthermore, what language should I learn? Personally I want to get into the area of app making. But I know I need the basics to be able to do that.

    So your ideas would be great! Thanks.
     
  2. Jackitate

    Jackitate Valued Member

    I program in C++ and Visual basic. What kind of stuff are you looking to do? Make games, make general applications etc.
     
  3. thauma

    thauma Valued Member

    Having worked in IT for far longer than I care to remember, and having programmed in most languages at some stage or other I have come across a lot of people who ask this question.

    To my mind learning the principles of programming (algorithm design, programming constructs, flowcharts, pseudo-code etc) is far more important than learning a language, for once you have the mind-set then the language is relatively simple to pick up. However many people are taught a language without the background constructs, and this creates gaping holes in their understanding, and often leads to their ultimate disappointment in the end result.

    Don't get me wrong - progamming languages are all interesting, but IMHO you would find it easier to move from one to another if you have the background skill-set. Also the type of program you wish to create may well dictate the language you must use.

    I can't recommend a particular course or set of self-study, but I'm sure that you will find something appropriate.

    Good Luck
     
  4. holyheadjch

    holyheadjch Valued Member

    You can learn such theory whilst gaining a practical understanding through a programming language. In fact, I think that's the only sensible way of doing it. If you had to study theory for a year before touching a single piece of code, there would be a serious shortage of programmers, for the simple reason that 99.9% of them would quit.
     
  5. Slindsay

    Slindsay All violence is necessary

    It depends on your goals a lot but these days I think a good place to kick off with self taught stuff is Processing, it's got a nice low barrier to entry and lets you start doing graphical stuff very quickly, it can be put up on the web and I see a lot of people with no technical background teach themselves it and be doing pretty cool stuff by about 3 months in. Thats something I can't say about any other language out there.

    It's not the most practical language in the world but it shares syntax with java and C++/C#. The downlaod is free as well.

    To give it a go, go to http://processing.org/download/ and follow the instructions to install it.

    To start learnign it you can use http://processing.org/learning/ or better yet http://www.learningprocessing.com/tutorials/
     
  6. Polar Bear

    Polar Bear Moved on

    Progamming is easy as long as you have the mind for it. Get the free version of visual studio to start with c#. It's easy, the api's are friendly. Then you can suffer the hell that is c and java (specifically the android api).

    The Bear.
     
  7. Osu,


    Get a computer ---> start programming...
    That's what we all did in the late 70es with Sinclairs & Commodores...
    You'll get a taste of it! :)


    Osu!
     
  8. Moosey

    Moosey invariably, a moose Supporter

    In terms of easy to pick up, Visual Basic. Although lots of professional programmers hate it because it doesn't use enough curly brackets.
     
  9. holyheadjch

    holyheadjch Valued Member

    No. We hate it because it's crap! The lack of the curly brackets is just one facet of its unbearable crapness.
     
  10. Osu,


    I can see you did not have to start with formol and cobalt Holyheadjch :D:D


    Osu!



    (read fortran and cobol...)
     
  11. holyheadjch

    holyheadjch Valued Member

    lol, no. Thank God, else I might have become a lawyer instead.
     
  12. Giovanni

    Giovanni Well-Known Member Supporter

    lol. c and java are hell.

    c# is a great place to start. make sure you understand concepts as a previous poster mentioned. one thing that made my programs better, once i learned how to do it, is to unit test. also, ruby or python are great learning-tool languages.
     
    Last edited: Jun 17, 2011
  13. Johnno

    Johnno Valued Member

    I'm a bit confused by this point.

    What did you do before you learned to unit test? Just write your programs and hope that they would actually work?
     
  14. holyheadjch

    holyheadjch Valued Member

    That's how most software is developed to be fair.
     
  15. Johnno

    Johnno Valued Member

    I've heard of IT departments which use dedicated testing teams, but personally I think they should be solely used for acceptance testing. Unit testing should be an integral part of program development. Ideally, you should write your test plan before you start coding.
     
  16. m1k3jobs

    m1k3jobs Dudeist Priest

    Everything that has been posted is pretty well on target, unless of course you want to do database work. Then you will be programming in SQL and the standard answer you will get from every experience SQL programmer is "it depends". In that case start picking up set theory.

    Seriously, go to school. That's the best way. Also take a math logic course and a set theory course. No need to go into infinite sets as they get weird and don't apply to what you are doing. If you have a basic understanding of boolean algebra/logic and set theory programming becomes the tool you use to take the theory and make it work in the real world.
     
  17. Giovanni

    Giovanni Well-Known Member Supporter

    yes. this is how i was taught in college, depaul. write the programs, hope they work.

    so you know where i'm coming from...i work as an analyst/project manager/do-everything-guy at a small consulting firm. i've managed projects, created requirements documents, done analysis on systems and requirements, write acceptance tests for systems (we're agile here, so lots of automated tests for developers to make pass, this is my main job function now) and at times program in c++, java, ruby, python.

    until i started unit testing, my programs were junk, frankly. the kids we hire from respectable institutions like university of illinois, michigan, purdue, are not taught unit testing. computer science majors...not taught unit testing. put that in your pipe and see how it smokes.
     
  18. Giovanni

    Giovanni Well-Known Member Supporter

    yeah johnno. exactly.
     
  19. JackMcCann

    JackMcCann Valued Member

    Thanks guys for all that info and theres a really healthy debate going on there.

    I was reccomended by a guy to try and learn a fairly easy language like visual basic or C++ (well, apparently easy) and then with the skills learned transfer that to app design. I particularly want to pick up Android app making. Is this a good way about doing this?

    And also, does self study really work no matter how disciplined you are? Especially as I have no expercience I would really like a teacher, but the problem is theres basically none that do it in my area except for degree level - and Im only 16 hahah.

    I really want to learn, but I just wan't to make sure I go about it in the right way.
     
  20. embra

    embra Valued Member

    Firstly - don't waste your time with Visual Basic - its totally tied into Microsoft and is weak in many areas, compared to other languages e.g. its management of errors really sucks. C++ is too difficult for beginners, though it has a valuable place in the world, but you have to gain really good training and exposure - with people who know what they are doing - and this is not trivial.

    A lot of programming languages/tools/environments/methodologies (Agile is the big fad right now) - and general hassle to be frank - are driven by market fashions and tastes e.g. all things mobile - like the incredible hassle of Android/iphone (Objective-c) programming.

    At your age, you want to develop some kind of basic skills/awareness to acquire a taste/flavour/appetite for serious programming.

    Unfortunately, everything you learn becomes redundant/old-hat very, very quickly - and there is nothing you (or me or anyone else) can do about this.

    To prosper in IT, you need to develop logical skills, hacker skills (sometimes the only way), patience, perseverence and also an awareness of how complex buiding software is in teams - for this you can gain insight by looking at how a theatre play is directed i.e. events have to be sequenced and parellized and scheduled, to finish the overall picture i.e. you need perceptions of how human behaviour works effectively/or does not - a serious ammount of IT projects do not succede - unless they are small.

    Back on the technical front, 2 things to look out for are a) security - this is becoming a bigger problem all the time - especially in the mobile world and b) the future of programming in about 10 years time is likely (but not definitively) to be much more explicit parallel/concurrent programming along with more distributed programming - for this you want to find out about sequential, parallel and distributed algorithms along with the standard fodder of Object Orientation and relational database design.

    Right now, parallel and concurrent programming is in its infancy (Java, C++, .Net, Groovy, Scala and others are all trotting in this direction, but very slowly.) The power of sequential computers is more or les at an end (but not quite).

    Right now you are 16 years old, so you just need to get some solid ground under you, and develop some taste/flavour/appetite somehow.
     

Share This Page