Learning programming for a newb

drrossgellardrrossgellar Member Posts: 4 ■□□□□□□□□□
Hello all

I posted this in the general certification forum, but I didn't get much feedback (I think it may be better served here. I made a note to move the thread.) so I thought it may be better here. Is it ok for me to move it? Thanks.

I have been looking into various programming languages in the hopes of learning and maybe becoming a Software writer. I have looked at some books, but I'm not sure if they are the right ones, and I seem to get bogged down very quickly with the language. I have checked in my area for any classes that might be useful, but there aren't any. I'm finding it really difficult to learn. Does anyone have any suggestions? (Maybe I'm not smart enough/have the aptitude for it?, I dunno).

Cheers

Comments

  • JoJoCal19JoJoCal19 Mod Posts: 2,835 Mod
    Hi drrossgellar, Im not a programmer but a year and a half ago before the bottom fell out of the economy I was going to learn programming and try to move from desktop support to development and since I had a Java programming class when I got my AS I knew I could learn. The series of books that really stood out to me were the Murach series of programming books and the Dietel How To series.

    The Murach books are available in Visual Basic, Java and several others and are really really easy to understand and also give you examples. I really like my Murach beginning Visual Basic.net book.

    The Dietel series are more complicated and very thorough but if you can go through the entire book you would be very knowledgeable and should be able to program. They are really thick, like 3+ inches thick and cover alot of material. A lot of universities use them for the class textbooks.
    Have: CISSP, CISM, CISA, CRISC, eJPT, GCIA, GSEC, CCSP, CCSK, AWS CSAA, AWS CCP, OCI Foundations Associate, ITIL-F, MS Cyber Security - USF, BSBA - UF, MSISA - WGU
    Currently Working On: Python, OSCP Prep
    Next Up:​ OSCP
    Studying:​ Code Academy (Python), Bash Scripting, Virtual Hacking Lab Coursework
  • elaverick1981elaverick1981 Member Posts: 161
    Hi Drrossgellar,
    Learning programming is not going to be a quick task by any means and I'd certainly not suggest it as a quick method of a career change. If you're looking into learning for its own sake and you've got a bit of patience then it can be very rewarding.

    The lack of classees is going to make things tricky, and learning from another person face-to-face is by far the prefered route. It will stop you falling into bad habits (of which there are many). You can however go the self taught route and there are a number of things that can help you with this.

    Choose a programing language for which there are plenty of free resources and the ability to find good paid resources for once you're a bit further in. Java, C# and Visual Basic.NET are all good choices. Java is nicely structured, entirely free and supported on Windows, Mac's and Linux (as well as a lot of mobile phones in its J2ME flavour). However the development environment can be a bit intimidating to set up at first. Visual Basic.NET and C# are both very similar, in terms of syntax and their development environment. You can get free copies of Visual studio for both and you will find that if you move to a commercial environment the tools will be instantly familar. As a C# programmer I have a bit of a bias towards C# as a language. While Visual Basic.NET has come a good way in maturity it is still regarded by some as a beginners language and you may potentially come across a bit of a stigma in the industry for this reason.

    Assuming you go for the the Visual Basic/C# route, there are tons of resources available for beginners on MSDN (Visual C# Tutorials and How Do I Learning Resources on MSDN) and sites such as C# station (C# Station: C# Tutorial Lesson 01 - Getting Started). I'm a big advocate of learning by doing. Until you get some code down its going to take a while to get the feel of what you're trying to achieve.

    The next thing you need to do is find a good and active developer community where you can compare notes and ask noobieish questions (you will have lots, its nothing to worry about, programming requires a radically different mind set to most other tasks). A quick Google about should help you find somewhere. Microsoft do have their own developer community forums but I tend to find them quite full and your question can quickly get lost among the herd. Its also a good idea to learn to phrase questions to elicit the best help possible. There are a lot of people out there who are prepared to give you the time read through your questions and give you good full answers, but at the same time there are a large number of people who will take one glance at your question and just ignore it. Well phrased questions tend to get a lot better responses than quick off the cuff ones.

    What ever route you decide to take, good luck. And be sure to let us know how things go.
  • JDMurrayJDMurray Admin Posts: 13,101 Admin
    If you want to learn programming with the possibility of earning a living from it, choose either Java or C# as your first language (I like .NET's Visual Basic 2008, but there's much more demand for C#). The Murach's Java SE 6 book is very good and highly recommended, as is the Head First series (Head First Java, Head First C#, and Head First Design Patterns) from O'Reilly.

    Programming is something that you should find enjoyable if you really want to do it successfully as a living.
  • whatthehellwhatthehell Member Posts: 920
    What does everyone think of Python for a first language to really dive into?
    Too high level?

    I agree that VB.NET would be great, as well as C#, but I am actually going through Python (albeit slowly) and it has been gently easing me in quite nicely.

    MIT offers free Open Courseware (Free Online Course Materials | MIT OpenCourseWare).

    The Intro Computer Programming class offered free is actually instructing Python. There is a link to a free book and all the course material, so good stuff.

    Also, many other courses offered too, in case anyone else wants some networking classes, etc.

    Also, what about the next step in learning a language? If there is no formal work training, what do you guys think about doing eLance or freelancer projects? Too early to jump into something like that, yes?
    2017 Goals:
    [ ] Security + [ ] 74-409 [ ] CEH
    Future Goals:
    TBD
  • SlowhandSlowhand Mod Posts: 5,161 Mod
    What does everyone think of Python for a first language to really dive into?
    Too high level?

    I agree that VB.NET would be great, as well as C#, but I am actually going through Python (albeit slowly) and it has been gently easing me in quite nicely.

    MIT offers free Open Courseware (Free Online Course Materials | MIT OpenCourseWare).

    The Intro Computer Programming class offered free is actually instructing Python. There is a link to a free book and all the course material, so good stuff.

    Also, many other courses offered too, in case anyone else wants some networking classes, etc.

    Also, what about the next step in learning a language? If there is no formal work training, what do you guys think about doing eLance or freelancer projects? Too early to jump into something like that, yes?
    Python's great, but starting with a C-like language like C# or Java is probably better for buildling a foundation since any classes he would find in the average community college, for example, would be taught in C/C++, C#, or Java. (MIT doesn't count, those guys are nuts. icon_lol.gif ) The OpenCourseWare classes are great, a lot of different schools are doing it, and in just about all subjects.

    I can give another vote to C#, backing up JDMurray's recommendation, mainly because I've found Microsoft's Step by Step books to be excellent as of late. The Wrox book also looks to be excellent, I've used several of their other work in my IT career.

    Free Microsoft Training: Microsoft Learn
    Free PowerShell Resources: Top PowerShell Blogs
    Free DevOps/Azure Resources: Visual Studio Dev Essentials

    Let it never be said that I didn't do the very least I could do.
  • drrossgellardrrossgellar Member Posts: 4 ■□□□□□□□□□
    Wow, a lot of responses. That's good :) Thanks.

    I bought Teach yourself programming in 24 hours, and have been going through it slowly. I understand the start of the book, but there seems to be some leaps that I can't quite make and then I get lost. I feel like If I could actually write out the code for soemthing I could maybe start to grasp it, but I can't seem to break the logic down enough to start and write anything. I remember years ago an old tutor saying to me that when it comes to programming you either take to it and have it, or you don't. It seems to be a very specialised way of thinking (as elaverick1981 says above). I thought that a class would help, but there isn't one in my area at all. I could take a bachelors in CS or software eng, but I feel it may be a little overkill straight away.

    I think I'm feeling as though I should be doing better. I'm a fairly smart guy, and thought I would adapt to it quicker than I am. It's a shame you can't ask the book questions.
  • elaverick1981elaverick1981 Member Posts: 161
    Don't get to disheartened. There's a lot to pick up and those teach your self in 24 hours books do tend to rush you a bit.

    Grab yourself a copy of Visual Studio Express and try a few really simple exercises.

    Everyone first should be a console based application that prints Hello World to the screen.

    Next try some simple maths. Create 3 integer variables, assign numbers to two of them and then add them together and store the result in the third variable. Now modify your original hello world program to display the result of your calculations.

    After that have a look at some if statements. If the result of your calculations is greater than 5 have it print "More than 5" if its less then have it print "Less than 5".

    None of this is going to be world shaking stuff, and you might find it a bit boring to begin with, but some simple drills like this should test your understanding of basic concepts.
  • whatthehellwhatthehell Member Posts: 920
    Thanks for the recommendations slowhand!!!

    I am going to pick apart C# first I believe, while peeking at Python a bit during and mostly after.

    Either way, the water seems warm and might as well jump in! icon_lol.gif
    2017 Goals:
    [ ] Security + [ ] 74-409 [ ] CEH
    Future Goals:
    TBD
  • SlowhandSlowhand Mod Posts: 5,161 Mod
    There are also some good projects out there to try, in cases you feel like you're easily bored or want a bigger challenger.

    Free Microsoft Training: Microsoft Learn
    Free PowerShell Resources: Top PowerShell Blogs
    Free DevOps/Azure Resources: Visual Studio Dev Essentials

    Let it never be said that I didn't do the very least I could do.
  • JDMurrayJDMurray Admin Posts: 13,101 Admin
    And you can learn a lot from what you can find with code search engines, like Krugle - Transform Code into Profit. and Google Code Search
  • JoJoCal19JoJoCal19 Mod Posts: 2,835 Mod
    I would recommend you get Murach's C# 2008

    I dont have that exact book but I have his visual basic book and it is truly awesome. I also have one of the Java books and its good stuff too. His teaching style is great for beginners. I do agree with others that C# is probably the most in demand. It used to be Java was taught for most beginning programming classes but now all I see is teachers using C to start with.

    And dont be discouraged. You definitely CAN get into a programming job by being taught. It just takes dedication and lots of practice and find an entry level job and apply for it. If you can demonstrate the skills you will be ok.
    Have: CISSP, CISM, CISA, CRISC, eJPT, GCIA, GSEC, CCSP, CCSK, AWS CSAA, AWS CCP, OCI Foundations Associate, ITIL-F, MS Cyber Security - USF, BSBA - UF, MSISA - WGU
    Currently Working On: Python, OSCP Prep
    Next Up:​ OSCP
    Studying:​ Code Academy (Python), Bash Scripting, Virtual Hacking Lab Coursework
  • skrpuneskrpune Member Posts: 1,409
    Wow, a lot of responses. That's good :) Thanks.

    I bought Teach yourself programming in 24 hours, and have been going through it slowly. I understand the start of the book, but there seems to be some leaps that I can't quite make and then I get lost. I feel like If I could actually write out the code for soemthing I could maybe start to grasp it, but I can't seem to break the logic down enough to start and write anything. I remember years ago an old tutor saying to me that when it comes to programming you either take to it and have it, or you don't. It seems to be a very specialised way of thinking (as elaverick1981 says above). I thought that a class would help, but there isn't one in my area at all. I could take a bachelors in CS or software eng, but I feel it may be a little overkill straight away.

    I think I'm feeling as though I should be doing better. I'm a fairly smart guy, and thought I would adapt to it quicker than I am. It's a shame you can't ask the book questions.
    somewhat sadly, I'm having better luck learning programming (intro Java) on my own by reading my textbook than by going to class - my teacher is nice & all, but she's just not very organized & is a little flighty, so we end up teaching ourselves much of the materials. I really like the textbook we're using (although it does weight about 5+ pounds) - "Starting Out With Java - From Control Structures Through Data Structures" by Gaddis/Muganda. It comes with a resource CD that has some Java IDEs & all the code in the book. It gets really good reviews, and it is totally geared for beginners. If you're looking for a good (and heavy) and detailed Java book aimed at noobs, I recommend it.
    Currently Studying For: Nothing (cert-wise, anyway)
    Next Up: Security+, 291?

    Enrolled in Masters program: CS 2011 expected completion
  • TravR1TravR1 Member Posts: 332
    I learn better on my own, rather than in a classroom as well.. even if the teacher is good. Teachers have to move slower to appeal to all the different learning styles that are in the room whereas by yourself, you know how you learn and you can just get to it.

    IMO programming is easier to learn than IT stuff because you can just download say Eclipse and start going with it and not worrying about labs or server software or hardware or anything like that.
    Austin Community College, certificate of completion: C++ Programming.
    Sophomore - Computer Science, Mathematics
  • JDMurrayJDMurray Admin Posts: 13,101 Admin
    And if any new Java programmers end up disliking Eclipse (as I do), please try the NetBeans IDE before giving up on Java. If you want to writing Java programs specifically for the BlackBerry, please try the BlackBerry Java Development Environment first.
  • TravR1TravR1 Member Posts: 332
    What is the difference from Eclipse and NetBeans? ... curious..
    Austin Community College, certificate of completion: C++ Programming.
    Sophomore - Computer Science, Mathematics
  • shednikshednik Member Posts: 2,005
    I have to say after taking a data structure and algorithm course and it was focused on C. I actually prefer it now over Java & C# but I can look at Java and C# code alot better now after taking the course. So I'd have to C isn't bad to start off with...I did have a few VB courses before this one in my undergrad degree.
  • ServerProvidesServerProvides Member Posts: 20 ■□□□□□□□□□
    shednik wrote: »
    I have to say after taking a data structure and algorithm course and it was focused on C. I actually prefer it now over Java & C# but I can look at Java and C# code alot better now after taking the course. So I'd have to C isn't bad to start off with...I did have a few VB courses before this one in my undergrad degree.

    C explains at a very low level how variables are stored in the computer. How they are referenced, ect. It is probably *the* best language to understand if you want to be a serious programmer, and I completely agree with you. After taking a data structures course in C (It's like advanced C with header, object, and source files) I found the OOP layout of Java and C# made much more sense. I think a lot of people devalue C because it's a procedural language and most code isn't written in it, but it really does teach you the foundations to build off of in the field of programming.
    Currently Pursuing...

    BS in Computer Science
Sign In or Register to comment.