Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

So, I've decided to teach myself a language

Options
2»

Comments

  • Registered Users Posts: 4,003 ✭✭✭rsynnott


    dulpit wrote:
    On an aside, what is it with people and this Microsoft bashing? An earliest post mentioned how programming in windows gives you bad habits so that you will only be able to code in a Windows environment? Now am I been naive or do people seriously over-estimate Mr. Gates? Did he set out to destroy all other O.S's with things like that? I'm sick and tired of people continually telling me (including lecturers...) that Linux or Mac OS is far superior in all ways to Windows... And yet who really cares? Windows works for me and everyone else, so give it a rest! Rant over...:)

    No, this one is correct to an extent. Program in, say, Linux, and you can program for most other Unixes, a variety of exotic realtime systems, and various embedded things with little difficulty. The same tool-chain, more or less, is used. Windows has its own tool-chain, and is really a bit of an island. Windows has case-insensitive filenames; most operating systems have case-sensitive ones. Windows is single-architecture, more or less; if you program for Linux your programs will have to work on tens of architectures. A Windows programmer never needs to think about byte-order unless they write drivers or similar. Certain techniques common in the Unix world aren't an option on Windows; the one that springs to mind immediately is fork.

    Of course, you more or less CAN'T learn to program in certain languages on Windows. Common Lisp, for instance, lacks a free full-featured Windows implementation, and the relative difficulty of compiling things on Windows makes using add-ons for things like Python difficult.

    And to add insult to injury, Windows ships with only an alarmingly bad text-editor.

    It's not by any means impossible to learn to program on Windows, but I suspect it's easier elsewhere.

    Saying that this was deliberate on Microsoft's point is a little odd; it's merely that Windows has followed a different evolutionary path than most operating systems, and carries a legacy from its toy operating system past.

    On VB: http://www.ddj.com/dept/windows/184403996


  • Closed Accounts Posts: 183 ✭✭Scuba_Scoper


    I would like to offer my 2c.

    Stop, stop, stop. !!!

    OK, now the justification for my 2c :)

    I see this kind of post all over the net and the answer is usually like the way this thread and others progress. Java, C C++ C# VB etc etc etc.

    Teaching yourself a programming language is a useful exercise but to be honest you are putting the cart before the horse. What you need to do is learn how to program. The langage you use is trivial and the ones you know are just the tools you will use to accomplish the task of programming.

    In a professional environment, we (programmers) never say "I am going to use <insert languauge>. Now what is the problem." It goes rather differently and coding languages are usually the last part of the equation. The scenario plays out from a design focus first then a detailed specification and the language will just fit in when solving the equation/problem.

    There is no best language to learn how to program but a language that will not suck you in to "its" way of doing things is a good bet. In the good old days you started with a "low" level language like C because you learned ALOT about how the machine works, paying attention to things like allocation of memory for your program and good memory management. I feel that plunging straight in to "higher" level langagues like C#, Java and VB.net do not offer the same low level understanding that older programmers got and this leads to sloppier amd wasteful programming techniques.

    This is probably balanced out by you young bucks being smarter than the older generation but meh :)

    In my view the best way to program is to just do it. Dietel & Dietal are a fine starting point for any novice programmer and focus on the art of programming and not the syntax of the language. Pick a language that you can use on whatever hardware you have. It doesn't matter which OS you use. They are all very good at what they do. There is no best one.

    Coding at your keyboard is a habit you must break before you start.

    Identify a problem. - on paper
    Think about the soloution.- on paper
    Break it down to smaller problems.- on paper
    Think about the smaller problem.- on paper
    Break that down until you can manage that problem.- on paper
    Write the code to solve all the small problems. at your keyboard.

    Then get into the infinite loop of debug,fix,debug,fix improve...........


    This is how we do it in the real world.

    Once you learn how to program, learning a new language is bit like driving
    rental cars. They all do the same thing but each will have its own way of
    getting you to where you want to go.

    Hope some of this helps - I have been a programmer on and off for the last 15 years.


  • Registered Users Posts: 4,003 ✭✭✭rsynnott


    Teaching yourself a programming language is a useful exercise but to be honest you are putting the cart before the horse. What you need to do is learn how to program. The langage you use is trivial and the ones you know are just the tools you will use to accomplish the task of programming.

    There are, however, programming techniques which you can't learn in certain languages. This is why I recommended some high-level languages with functional abilities (a little marginal in Python's case) as a starter. Learning a slightly more mainstream language (Java, C#, whatever) once you've learned one of these is trivial. Then having a look at lowish-level programming (C, maybe) could be an idea, then some form of assembly and maybe a hardware description language for fun. :)

    And then, of course, there are concurrent and real-time languages...


Advertisement