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
Hi there,
There is an issue with role permissions that is being worked on at the moment.
If you are having trouble with access or permissions on regional forums please post here to get access: https://www.boards.ie/discussion/2058365403/you-do-not-have-permission-for-that#latest

How to become a programmer

  • 28-03-2011 11:25am
    #1
    Closed Accounts Posts: 2,087 ✭✭✭


    Hi all,

    I was directed over here from IT certification (under Edu) by Dave!

    I'm looking to get into programming. I'd really like to learn enough to be competent in programming in as short a time as possible. To give you some background info, I'm 30 and have been an accountant the last 10 years. So I've a decent enough understanding of the basics of computing, spreadsheets etc.

    At the moment it seems like I have two choices.
    1. Do a night course in either computer science (€5,780 p.a. in Griffith) or Computing (€3,780 p.a. in NCI).
    2. Learn in my own time, starting with C++.
    Can anyone give any advice on this.

    If I go down the route of learning on my own, can anyone help with the following:-
    1. Should I start with C++,
    2. Can anyone reccomend some good books to start with. I had a quick look this morning and the beginning programming for dummies is getting ok reviews. Any better suggestions?
    3. Does anyone know any good websites that would assist in learning,
    4. Does anyone know of any training courses in Dublin that would help. So far, I've come accross this Course. He seems to do a few that may be of benefit to me. It's always good to have some interaction with a professional teacher.
    Thanks for reading. Any help would be much appreciated.

    Al.


Comments

  • Closed Accounts Posts: 1,487 ✭✭✭Pov06


    First of all, if you think it's something you'll enjoy - learn it yourself. If you choose this path, don't bother with books... There's enough info on the net out there to cover you.

    Next of all, try make a little project, after you know the basics (syntax, if statements, loops etc.) of something you like. It doesn't have to be big or anything. Then as you keep on making the project, Google for info, as you move along. This way it will be more enjoyable and more practice.

    How I started along was, I started creating a mod for an online game server. Started out with the basics, and then as I added more features, I learned new things, replaced old things etc.

    Personally speaking though - C++ is a bit rough to start with as a first language. My first language was .NET C#, which is a descendant of C++, providing many libraries, being easier and of course functions named in more understandable English.

    Comparing C++ to .NET C# gets you very close - they are both fast, they both can do the same thing. Only difference is - C++ has a higher market, and more use.

    But going from .NET C# to C++ wouldn't be hard. The syntax is almost the same. It's just that you need to get some libraries yourself, learn new names of functions, and learn "classes" in C++. Because in C++ there's 2 files to a class, where as there's 1 class file in C#.

    Hope I helped a little. Programming is a very nice hobby, but the result is always the best!

    Good luck.


  • Registered Users, Registered Users 2 Posts: 5,246 ✭✭✭conor.hogan.2


    Get a book or several there is a lot of wrong, bad or window specific code on the net.

    If you are rushing it, yes c++ straight off and learn the low level c bits should you need or want them later.


  • Closed Accounts Posts: 2,087 ✭✭✭Clanket


    Thanks for your replies. I'm definitely interested in it and know I will enjoy it. Would also open up some career paths for me.

    Really just need to know where to start. From talking to a few people it seems to be with C++ then move onto C#.

    But maybe I should just dive in and learn C#.

    Anyone got any specific book suggestions or is the one for dummies a good place to start?


  • Registered Users, Registered Users 2 Posts: 9,579 ✭✭✭Webmonkey


    To be honest, I'd go C# first then C++. At least for the very beginning. Unless you have a lot of patience, and understand a bit more complicated compiler errors, I'd go with C# over C++.

    I personally think C++ could be a hard one to begin with. Maybe you could consider a course then after. If you plan and make it a career, you'll probably require a qualification to get anywhere. That just seems to be the way generally.


  • Registered Users, Registered Users 2 Posts: 981 ✭✭✭fasty


    It really depends on what you want to do. If you want to make a career out of it, knowing lower level languages like C or C++ is definitely a benefit, but the learning curve is steep.

    Other languages like introduce stuff like variables, loops, functions, classes while being more accessible and give much more instant gratification.

    Is there anything you'd like to code yourself?


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 627 ✭✭✭rossc007


    I'd have to say go with C# or Java... imo, stay away from C++, too much to learn for a beginner and there's more job opportunities.


  • Closed Accounts Posts: 2,087 ✭✭✭Clanket


    Nothing in particular would like to code. Would just like to know how to do it.

    And if I was any use, then maybe change career. I know it can be difficult to find a job if you don't have a degree. But I don't really have the money or available time to be go the degree route. I'd have to give up my Tuesday - Thursday 6:30 to 9:30. Much prefer to do it in my own time (i.e. after my son has gone to bed, from home).

    I'm also sure if I learn on my own I'll know fairly soon if it's for me or not. I honestly think I have the ability and desire to learn so really just need an idea of where to start.

    I've been looking at http://www.learncpp.com/ this evening and it seems like a good place. However, I'm starting to doubt I should start at C++ by what some of you have said. Anyone else care to throw in their tuppence.


  • Closed Accounts Posts: 2,087 ✭✭✭Clanket


    Webmonkey wrote: »
    Maybe you could consider a course then after.

    A friend of mine says vb.net is a good language to learn. But the SCT crowd said you need knowledge of another language before they'll teach it. That's why I'm starting at C++.

    Maybe C# is the one to learn first.


  • Registered Users, Registered Users 2 Posts: 9,579 ✭✭✭Webmonkey


    Clanket wrote: »
    A friend of mine says vb.net is a good language to learn. But the SCT crowd said you need knowledge of another language before they'll teach it. That's why I'm starting at C++.

    Maybe C# is the one to learn first.
    Ah I thought by your post title that you wanted to become a professional one as part of a career.

    Yeah indeed have a go learning yourself. It can be more fun after all.

    VB.NET hmmm - personally i would keep clear of it. It spoon feeds you.

    Give C# or Java a go. If you want, you could also look at something like PHP/Phyton for quickly doing the basics, loops/functions/for loops etc. But in my opinion if you can, you should try with C# or Java or even basic C to start with. Object oriented programming in Java/C# can be a bit of a learning curve too but it's a necessity these days.


  • Closed Accounts Posts: 5,857 ✭✭✭professore


    Before you write a line of code, I would advise to first try to grasp the whole idea of object orientation (OO). This applies across the board to C++, C# and Java.

    For learning, personally I would go for C++. "Plain vanilla" C++ is actually not that difficult:

    http://www.wikihow.com/Create-Some-Simple-Programs-in-C%2B%2B

    I would consider starting off with a command line compiler on linux, as this strips away all the complexity of Visual Studio (the program you use for C# and C++ .NET), which can be more confusing than C++ itself, and has lots of "Windows Only" features. Once you get a handle on OO and C++ the other languages are easy to learn. You will also be able to distinguish between C++ that will compile on any platform (including Windows) or only on Windows.

    Get linux (try ubuntu) ...
    http://www.ubuntu.com/ If you don't have a spare PC you can run it direct from a CD or USB on a windows machine: http://www.ubuntu.com/desktop/get-ubuntu/download


    Have a look at this:
    http://www.youtube.com/watch?v=mDGhN6Jh9YA&feature=related

    Then buy a book on OO programming in general. It is critical to understand this in order to write sensible programs in any of these languages.
    Have a look at this one:
    http://java.sun.com/developer/Books/javaprogramming/ooad/
    Read a chapter at a time and let it sink in. It's a bit like learning to ride a bike, for a while you get nowhere and then suddenly you "get it". Some people never do.... but you sound like a smart guy even if you went to the dark side of the corporate world for a while :D

    I have another Head First book (Head First Design Patterns) and found it excellent.

    Then start learning to program.
    http://planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=2040&lngWId=3 Start with this to learn how to compile a program.

    http://www.cprogramming.com/tutorial.html#c++tutorial This looks good for actually learning some C++ ...

    Then if you get this far, you can go to Windows C++ .NET, C# or Java depending on what you want (or PHP or Ruby, or any other OO language).

    Good luck!


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 385 ✭✭nicol


    As a starting point I'd download one of the Visual Studio Express Editions from the Microsoft site. These are free development environments and have a Beginner Developer Learning Center. Looks like they have articles on the basics of Windows or Web development, as well as articles on becoming a professional programmer. Might be a good starting point to help get your head around the basics.

    As regards a language VB.NET is probably the easiest to learn syntactically but if you're not phased by curly braces and semi-colons then I'd go with C#, would seem to be more jobs out there for C' vs VB.NET. I think C++ would be too steep a learning curve for a beginner tbh.

    Ultimately if you want to make a career of it you need to do a decent course to learn the correct way to do things, I've met a lot of 'developers' in my time who know how to write half decent code but fall over on crucial aspects like security, memory management etc. because they've only ever seen one way of doing something.

    Good luck with it!!


  • Registered Users, Registered Users 2 Posts: 891 ✭✭✭Mmmm_Lemony


    I would suggest starting with Java.

    It behaves the same way regardless of the OS or platform. And all you need is Notepad or a simple text editor to start. (Textpad or Notepad+ are good) It has very few reserved words too. So you can be writing code anywhere.

    When you are confident with the basic theory of object oriented programming, there are a number of free development environments like Netbeans and Eclipse, that will help you better manage an application or project.

    This guy, although his voice gets on some peoples nerves, gives very good tutorials.


  • Registered Users, Registered Users 2 Posts: 183 ✭✭ClareVisitor


    I would go with C#. The Express editions of the .NET languages are free from the Microsoft website as stated above and there is an endless supply of books and articles to get you started and the online help (both official and unofficial) is extensive. I would agree with getting a basis in OO programmin before you dive into coding though. You'll most likely want to get a handle on the database side of things also, SQL Server Express is also free and is equally well documented. C# and SQL Server are very mainstream development environments if you want to make a career out if IT.


  • Closed Accounts Posts: 2,087 ✭✭✭Clanket


    Thanks for all your replies. I'm more confused than ever on where's the best place to start. However, I'm sure it doesn't really matter where you start as long as you get there.

    I started reading the "Learn C++" website last night and it seems well laid out and easy to read. So might just continue on with that. I'll also look into Linux and the links professore put up (Thanks for that).

    Thanks again to everyone.


  • Registered Users, Registered Users 2 Posts: 3,945 ✭✭✭Anima


    I'd install Ubuntu and use that as your development environment first. Windows is a bit fiddley for that stuff and you don't see whats going on. I'd stay away from an IDE at first also. It takes a while to learn an IDE and it hides a lot of the under the hood stuff. (Which later is a good thing because you can work faster then)

    I'd learn the very basics (variables, conditionals, arrays, pointers, structures, functions) in either C or Python. With Linux using make/gcc, its very fast compiling and spitting out new C programs.

    Python is interpreted and works in real-time so no need to compile, its a really nice language. Big tutorial explaining most of the basics of programming here.

    Really what you need is time. Theres nothing difficult about a lot of aspects of programming, it just takes time to sink in. I'd advise getting a good (big) book and just follow that. It'll be coherent and you know you're not missing something, as opposed to random internet tutorials. Small investment for what you'll gain.


  • Moderators, Technology & Internet Moderators Posts: 1,336 Mod ✭✭✭✭croo


    UC Berkley have a bunch of videos on youtube that are pretty interesting. It'll be more the theoretical side of things but they might be a nice compliment to reading books & practice.

    Search youtube for CS61A (scheme based) & CS62B (java based).

    I think might MIT have some too, but I'm not sure... try searching youtube for MIT CS.


  • Closed Accounts Posts: 2,087 ✭✭✭Clanket


    Anima wrote: »
    I'd advise getting a good (big) book and just follow that. It'll be coherent and you know you're not missing something, as opposed to random internet tutorials. Small investment for what you'll gain.

    Agree on the book. Tutorials are great but can be a bit all over the place if you're getting them from various sources.

    Any suggestions on the book? There's a load of them out there. I've ordered the "beginning programming for dummies which I'll read over the next few weeks but I'm sure there's better.


  • Registered Users, Registered Users 2 Posts: 9,579 ✭✭✭Webmonkey


    Clanket wrote: »
    Agree on the book. Tutorials are great but can be a bit all over the place if you're getting them from various sources.

    Any suggestions on the book? There's a load of them out there. I've ordered the "beginning programming for dummies which I'll read over the next few weeks but I'm sure there's better.
    Yes, you can't beat a book.

    Before any suggestions, have you decided what language you will go with?


  • Closed Accounts Posts: 2,087 ✭✭✭Clanket


    Webmonkey wrote: »
    Before any suggestions, have you decided what language you will go with?

    I'm thinking C++ at the minute.

    I've been told it's a good language to get your head around the concepts. If I can learn that I should hopefully be able to dive into any other language.


  • Registered Users, Registered Users 2 Posts: 3,945 ✭✭✭Anima


    I've been told it's a good language to get your head around the concepts

    Its probably one of the worst for learning the concepts better I think. You'll spend most of your time, especially as a beginner, battling with the syntax and strange compiler errors. It is a great language and one I use the most but it's not easy. You really have to know what you're doing to get anywhere with it.

    I learned Java first and learned object orientated programming and design patterns that way. I think thats a better route. Java is much more forgiving in pretty much every sense. It forces you to program in OOP in some cases where as C++, it's always just an option. I think Java or C# would be a better choice for that.

    No idea on a book really. O'Reily books seem to have a good reputation and they're quite easy to read. There are some "classic" choices that are listed in a sticky at the top of this forum but they might be a bit heavy at this stage.


  • Advertisement
  • Closed Accounts Posts: 2,087 ✭✭✭Clanket


    Damn you Anima. Now I'm really confused where to start.

    Do you think C# or Java can be learned from scratch by a complete novice? In their own time?

    If you had to pick one, which one C# or Java?


  • Registered Users, Registered Users 2 Posts: 9,579 ✭✭✭Webmonkey


    Clanket wrote: »
    Damn you Anima. Now I'm really confused where to start.

    Do you think C# or Java can be learned from scratch by a complete novice? In their own time?

    If you had to pick one, which one C# or Java?
    Well learning C# and Java is a heck a lot easier than C++ for a novice IMHO. The compiler errors that C++ produce are awful for a beginner. Miss a curly brace in your header file and well, have fun with the chain reaction/errors it produces! You don't need this hassle when beginning to learn.

    C# or Java? - well. They are extremly close. I'd go with Java personally. The .NET might seem a little daunting to begin with and you will have to use visual studio which can be a learning curve in it's own right.

    My advice:

    Get a good text editor. Perhaps Notepad++. Install the Java SDK. Start producing hello world examples in your text editor and compile it using command line or with the editor. You'll learn a heck a lot more without the annoying IDE's.

    Then you can move onto IDE's and more advanced programming later.

    Once you have Java, jumping to C# should be very natural.


  • Registered Users, Registered Users 2 Posts: 4,277 ✭✭✭km991148


    Clanket wrote: »
    Damn you Anima. Now I'm really confused where to start.

    Do you think C# or Java can be learned from scratch by a complete novice? In their own time?

    If you had to pick one, which one C# or Java?

    Having had a quick scan through this it appears you think there is a steeper learning curve with managed languages such as .net (c#) or java.

    I wouldn't get too hung up on language choice. Asking opinions is dangerous like this.. as you have seen - you end up with huge choice :D

    Maybe learn a little about the differences (I dont mean syntactical, but what happens under the hood - I don't mean technically but get an overview) - for example - with c/c++ you need to be much more careful about memory management, whereas c#/java (which uses a familiar c like syntax anyway) does a lot of memory management on your behalf (yes this is a very simplistic comparison, but just trying to give an idea)).

    Maybe you should pick a language that has lots of support and go with it. After a short while you can start to think more about whats going on under the hood and how different languages do things (i.e. c/java/c++ are compiled but there are also interpreted languages like python/php etc). This is where good quality books will help (there are good materials on the net but a lot of rubbish as well!) - not just on the topic of programming, but computing science/ software engineering in general.

    Additionally once up and running, you might want to think about different types of application (web/desktop/server/embedded) etc that you might want to focus on and then learn a language to match - this is important if you are mapping out a career, but thats a step or two down the line!). Also a big difference between languages these days is the built in libraries. .net (the framework behing c#) is rich and good to learn. The point abouve about using notepad maybe useful, but its a pain, and although IDE (such as visual studio and netbeans etc) have many advanced features, there will be plenty of tutorials around to show you the very basics to get you started (note - think of an IDE as a fancy text editor that has other tools build in to allow you to run code etc - I would get started straigh away with an IDE)

    Also remember being a successful 'programmer' is not simply about being able to code - as others have mentioned there are topics such as design (and being able to express design via UML), object orientated design, debugging applications, organising code, project management skills (and different ways of doing so in the 'Real World' all of which would be taught at uni, but can be picked up by reading up etc.

    Good luck with your choices!


  • Closed Accounts Posts: 2,087 ✭✭✭Clanket


    Thanks for the advice KM and everyone else


  • Registered Users, Registered Users 2 Posts: 2,059 ✭✭✭Buceph


    Hey OP. I'm about a week or two ahead of you in the "learning to program" stages. And I've asked a lot of the same questions you asked.

    First off, I went with Java. Not for any particular reason, some people I know online know it, it's fairly mainstream and I could get a book on it. I don't think the biggest thing is to just pick something and settle on it. People in the know could argue for years on which one someone should pick for learning, and never get a conclusive answer.

    For learning Java, I'm using the Head First Java book published by O'Reilly. I used their Head First HTML and CSS book and found it good, so I'm willing to give them another go. I find it lays things out in quite a good way, gives good examples of code, and most importantly annotates the code, so you know what each bit of the code does. And I find that really important. Also, there's loads of exercises and quizzes in the book. I initially skipped passed some of them, thinking I had the information down, but as it progressed I realised that was a mistake. Getting practice at writing and figuring out what code does is really important to me in helping to learn and understand.

    Also, as a happy coincidence I found some useful information linked to from this forum. Stanford have posted one of their introduction to programming lectures on iTunes, in the iTunes University section. It's a series of lectures teaching programming and the associated information (Object Orientation and the like) to people who have no understanding of programming. The language it uses is Java, so it directly ties in with what I'm doing. All the course material is available online, so you can following along his notes and exercises. I've found it to be very useful. Any of the apprehensions about specific things I got from the Head First book have been cleared up by the lecture series.

    The only other thing is that I would say it's helped to use an IDE. I've tried Eclipse, now I'm trying Intellij because someone said the error messages it uses are clearer. Either way, I've found it helps a lot with things like typos, of which I make a fair few. And it's simpler for me to have all my errors shown in a box at the bottom, that I can directly look at (with the number line of the piece of code) and correct the code all in the same program, rather than going from command line to text editor and back and forth if I wasn't using an IDE.

    All in all, I've been having fun with it. I've been at the actual coding and learning part for a week now. I read through the book on HTML the week before, which was a lot easier, but it was fun getting a bit techy. I've been doing a few hours of Java per day. Like anything you can dedicate a lot of time to it, especially like me if you're enjoying yourself. The one thing I would say about that though is to give yourself a break now and then. I was ploughing through material and getting stuck on the odd thing. After getting away from the computer for an hour, or letting it rest for a night while I slept it cleared up when I came back to it. If you don't give yourself time to digest it you'll be seeing parenthesis and braces in your sleep while saying to yourself "Motorbike harley equals new Motorbike()"

    Best of luck with it. You'll find it enjoyable if you're anyway tech inclined and don't put too much pressure on yourself. :)


  • Closed Accounts Posts: 2,087 ✭✭✭Clanket


    Great post Buceph. Thanks a lot for taking the time.


  • Closed Accounts Posts: 2,087 ✭✭✭Clanket


    Does anyone have any recommendations on whether to get a laptop or a desktop.

    A laptop would probably suit me better but if anyone has any advice I'd be much appreciated.


  • Registered Users, Registered Users 2 Posts: 3,945 ✭✭✭Anima


    Not much difference, obviously faster is better. It's handy to have a lot of screen space for coding, having multiple files and applications running.

    Lots of RAM is useful as well. A lot of IDEs eat a ton of it and it can really slow things down if the OS is swapping between the HDD and memory.


  • Registered Users, Registered Users 2 Posts: 2,059 ✭✭✭Buceph


    Oh yeah. Forget to mention this, but the name of the Standord course on iTunes is "Programming Methodology" and it's by Mehran Sahami. I've found it to be excellent.


    As for the desktop v laptop debate, if you have a particular need for portability go with the laptop. Otherwise desktops will always outshine them. You get more bang for your buck in terms of power, a bigger screen and a separate and full sized mouse and keyboard.

    I'd go so far to say that if you only need the laptop for browsing the internet and checking e-mails when you travel, you'd be better off getting a desktop for general computing and a cheap netbook for €300 or so for the mobile computing.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 5,246 ✭✭✭conor.hogan.2


    Picking a language to learn is harder to pick than with a natural language. So maybe spend two weeks (arbitrary time period) and learn the basics of variables, loops etc and a general overview of languages and then jump into c++ or java. As per laptop or not, the laptop is obviously portable. But some people really want bigger screens and multiple screens. A 13"macbook is grand for me.


  • Closed Accounts Posts: 5,482 ✭✭✭Kidchameleon


    Microsoft® XNA® Game Studio 3.0: Learn Programming Now!

    ^^ This is a great book if you want to learn C#. It teaches you the language and core programming concepts in a very beginner friendly way through simple game projects. They have it in town in all the book shops. BTW, I'd recommend learning C# or Java first before you move onto C++.


  • Closed Accounts Posts: 2,087 ✭✭✭Clanket


    Thanks Kidchameleon. I'll look into that book.

    Yep I've decided against C++ and am going with Java. Am going to do the beginner course here and learn it in my own time through books and internet.

    If I can get my head around Java I'll move onto C#.

    Thanks again to everyone for your help.


  • Moderators, Society & Culture Moderators Posts: 9,689 Mod ✭✭✭✭stevenmu


    Another suggestion, if you're not already familiar with linux, stick to windows, there's no point trying to complicate things with a new OS in the mix as well.

    Laptops can be great (I usually use one for development) but it's important to have a good keyboard and mouse, and it's really useful to have multiple screens (one for developing, one for google :)), so if you go the laptop route do get an external keyboard and mouse you can plug in and if possible an external monitor to connect as well.


  • Registered Users, Registered Users 2 Posts: 891 ✭✭✭Mmmm_Lemony


    If you have decided on Java, then this is for you. As I said before, his voice can annoy some people, but he works through everything in a very simple way.

    http://www.youtube.com/user/thenewboston


  • Registered Users, Registered Users 2 Posts: 9,579 ✭✭✭Webmonkey


    If you have decided on Java, then this is for you. As I said before, his voice can annoy some people, but he works through everything in a very simple way.

    http://www.youtube.com/user/thenewboston
    Is that not Java script?


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 891 ✭✭✭Mmmm_Lemony


    Webmonkey wrote: »
    Is that not Java script?

    Maybe, but his tutorials on Java are what I'm talking about. It looks like he's attempting to be a KhanAcademy for programming and web dev, and for the most part does a pretty good job at it. Hats off to him.

    Here are all his Java related tutorials;
    http://www.thenewboston.com/?cat=36&pOpen=tutorial


  • Registered Users, Registered Users 2 Posts: 9,579 ✭✭✭Webmonkey


    Maybe, but his tutorials on Java are what I'm talking about. It looks like he's attempting to be a KhanAcademy for programming and web dev, and for the most part does a pretty good job at it. Hats off to him.

    Here are all his Java related tutorials;
    http://www.thenewboston.com/?cat=36&pOpen=tutorial
    Ah good stuff. A lot of material in that channel


  • Registered Users, Registered Users 2 Posts: 184 ✭✭Razzuh


    If you're going for java, there's a free program for beginners called BlueJ that's handy for people starting out. It let's you get going with a friendly GUI and helps make OO programming more visual. It has an easy-to-use debugger so you can get used to this basic tool too.

    Once you have something going, then go to the command line and see how compiling etc. works using that.


  • Closed Accounts Posts: 2,087 ✭✭✭Clanket


    Thanks Razzuh. Will do.

    Am reading the beginning programming for dummies at the minute. Will be finished it by next week.

    I'm then going to go back over this thread and watch the tutorials/get the books recommended.

    Am also booked in to do the Java for beginners with sct ireland towards the end of April.


  • Registered Users, Registered Users 2 Posts: 602 ✭✭✭Gator


    The only advice I can give (and maybe some people will disagree) is that programming is something you are good at or are not, after 10 years of doing courses etc I really couldnt get a hold of programming as easily as other people, I found it really difficult and was lucky to stumble across networking where I enjoyed and was reasonably good at it.

    I dont think simply thinking one day "Il learn programming" is a simple as as picking up a book and reading, it can be quite hard for some people and I have seen some really intelligent struggle with the concepts.

    Dont underestimate the effotr involved, it takes a good mind and good dedication to really get a grip of it,but , maybe you will be one of those lucky b*astards that takes to it like rain man!!!!!! best of luck though


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 220 ✭✭dueyfinster


    Gator wrote: »
    I dont think simply thinking one day "Il learn programming" is a simple as as picking up a book and reading, it can be quite hard for some people and I have seen some really intelligent struggle with the concepts.


    I'm final year compsci and I can attest to this, people generally fall in to three categorys: those who get programming, those who try really hard at it and those who fail miserably.

    My advice: stick with it, vast majority of it is experience. You learn from the crappy programs you start off with. I have to say a structured course was essential for me as I could pick lecturers brains about the concepts etc, but there is nothing that can't be self taught.

    I have done mainly Java in College. I found a post (I can't find now) with a guy describing why Java is a terrible first language (and probably and C variant also). A dynamic scripting language like ruby or python with very simple syntax for first programs may be a better choice, though I can't say because I can't unlearn and try it it again! :D


  • Closed Accounts Posts: 2,087 ✭✭✭Clanket


    Gator wrote: »
    .

    I've always been interested in computers so hopefully I can pick it up. In most cases, if you're interested in something you'll learn it. Even if it takes years.
    I found a post (I can't find now) with a guy describing why Java is a terrible first language (and probably and C variant also). A dynamic scripting language like ruby or python with very simple syntax for first programs may be a better choice, though I can't say because I can't unlearn and try it it again! :D

    So far I've learned that if you ask 10 different programmers where's a good place to start you'll get 10 different answers :)

    I've made my mind up with Java and I'm sticking to it.

    Thanks for the replies.


  • Registered Users, Registered Users 2 Posts: 3,548 ✭✭✭Draupnir


    Java is a good call, it's certainly as good a call as any and gives you plenty of online materials to use and lots of people you can ask questions.

    I'd strongly advise that you avoid trying to put together any huge system or front end etc. at the first point, just try to put together some classes at first and then try to get your head around methods, class hierarchies and polymorphism.

    Once you've done that in one language you'll be pretty much sorted to pick up any other.


  • Registered Users, Registered Users 2 Posts: 981 ✭✭✭fasty


    Clanket wrote: »
    I've made my mind up with Java and I'm sticking to it.

    :D Good call. Really, the language doesn't matter as long as you learn and get stuff done. Sometimes it's the right tool for the job, sometimes not. You'll find that out soon enough.


  • Closed Accounts Posts: 4,564 ✭✭✭Naikon


    You need to get a good grasp of general Algorithms and logic. I think once you get a good grasp of the actual fundamentals
    it's easier to get a hold of programming. For example, you need to understand at the hardware level what a function call is doing.

    How can somebody execute arbitrary code by overwriting the return address of a stack subroutine? Nasty stuff like ASM will not
    give you a decent grasp of algorithms, but it's a start to actually understanding what is going on under the hood.

    People who think they suck at programming-> Start small and work your way up. Everyone sucks at programming when the idea
    of a silly cert is to simply memorise the class libraries. Get a grasp of the fundamentals and life will be much better. I would argue
    Java is not great for learning, as it abstracts everything to a high level. Learn from the ground up is my best advice.

    Also, try and understand pointers and concepts like recursion. Hard at first, but worth knowing for the fringe cases. Practice is key.
    I knew nothing about programming once upon a time, and while I am no Dennis Ritchie, practice will get you up to scratch after a while.


  • Registered Users, Registered Users 2 Posts: 9,579 ✭✭✭Webmonkey


    Naikon wrote: »
    You need to get a good grasp of general Algorithms and logic. I think once you get a good grasp of the actual fundamentals
    it's easier to get a hold of programming. For example, you need to understand at the hardware level what a function call is doing.

    How can somebody execute arbitrary code by overwriting the return address of a stack subroutine? Nasty stuff like ASM will not
    give you a decent grasp of algorithms, but it's a start to actually understanding what is going on under the hood.

    People who think they suck at programming-> Start small and work your way up. Everyone sucks at programming when the idea
    of a silly cert is to simply memorise the class libraries. Get a grasp of the fundamentals and life will be much better. I would argue
    Java is not great for learning, as it abstracts everything to a high level. Learn from the ground up is my best advice.

    Also, try and understand pointers and concepts like recursion. Hard at first, but worth knowing for the fringe cases. Practice is key.
    I knew nothing about programming once upon a time, and while I am no Dennis Ritchie, practice will get you up to scratch after a while.
    Unfort it takes a certain type of programmer to have the patience to start at ground up. I was of a similar view before, learning C / pointers etc first but I think it scares of a lot of people.

    I don't know, I think it depends on the person really.

    But algorithms/logic can be done in any language anyways.


  • Closed Accounts Posts: 4,564 ✭✭✭Naikon


    Webmonkey wrote: »
    Unfort it takes a certain type of programmer to have the patience to start at ground up. I was of a similar view before, learning C / pointers etc first but I think it scares of a lot of people.

    I don't know, I think it depends on the person really.

    But algorithms/logic can be done in any language anyways.

    On second thought, I think you are right. I only really started to "get" programming when learning about the instruction set and it's use for simple 8 bit stuff. Tedious for most taks however.
    A loop is a loop, whereas assembly varies between each instruction set.

    Assembly -> Getting the logic behind the machine
    C -> Teaches you to be careful/discipline(SEGMENTATION FAULT!)
    Java/Python -> Forces convention to the benefit of other team members
    Sed/Perl/Awk -> Essential for sysadmin/scripting

    You are 100% right though. It just so happens computers are very good at implementing Algorithms. A lang is just a means to an end. Something thee "certification" mills appear to forget at the best of times.


  • Registered Users, Registered Users 2 Posts: 5,246 ✭✭✭conor.hogan.2


    Plan out any program that will take up more than a screen worth of space, unless you like wasting time and if/when it works it looks all over the places.

    Whether you use pseudo code or flowcharts or whatever, just plan as it will save you so much hassle and time.


Advertisement