Problem I want to learn programming methodology not language syntax

Discussion in 'Scripting & Programming' started by searchformeaning, Apr 17, 2012.

  1. searchformeaning

    searchformeaning Bit Poster


    I'm new to programming. I bought 2 books to learn programming. But the problem I found is that both (and most other books) concentrate on how to write code not on how to THINK of a problem and divide it into chunks, think about each sub-problem and connect parts together to get the complete solution. For example, how to think of a loop and its codition/s. Most books just explain example code. This is the code to do so and so and this is the explanation of the syntax. The syntax of conditional statements, variables, loops, classes,...etc is pretty simple. Anybdoy can read a book and know the syntax. But to write code and solve probelms you need a book that teaches you how to think of a problem. How to improve your problem solving skills in terms of programming. How to enhance your solution (for example, keeping away from using redundant code).

    Please, recommend me a good programming book to build robust essential programming skills.
    Certifications: A+, Security+, MCP
  2. dmarsh

    dmarsh Petabyte Poster

    You won't find just one book that works in this regard as its a complicated subject that is largely something that comes with experience of writing hundreds of programs.

    Stuff you could maybe look at -

    Programming Pearls
    Design patterns : elements of reusable object-oriented software
    Ruminations on C++: A Decade of Programming Insight and Experience
    Clean Code

    The trouble is a lot of stuff you just won't 'get' until you have some experience in the language, processes, domain etc that the books write about. That is why programming jobs want people with years of experience.

    The book above on C++ for example will be of little interest if you don't know C++. The OO patterns and re-factoring again will be of less use if you are interested in basic procedural code or scripting.

    There is no 'one correct way' to write a computer program even with only moderate complexity. Hence there are many competing ideas, practices and techniques.

    These competing ideas occur both at the software engineering process level (Agile vs Iterative, TDD, DDD, Re-factoring, etc) and at the language and library design level (Functional, Imperative, Procedural, Object Orientated, Re-Entrant, Thread-safe, lock free, minimal vs complete, low overhead, etc).

    Good introductory computer science programming textbooks do explain both the syntax and how to go about creating basic Procedural or Object Orientated programs.

    Agreed there are also a lot of 'code example' books out there, I'd say these are not for you at this point, they are generally for explaining frameworks which you might use to create larger more complex programs.

    Find a one stop shop introductory book with procedural exercises and also basic syntax. Alternatively get a book on syntax and look into 'coding katas' or Project Euler.
    Last edited: Apr 17, 2012
    JonnyMX and wagnerk like this.
  3. searchformeaning

    searchformeaning Bit Poster

    Certifications: A+, Security+, MCP
  4. dmarsh

    dmarsh Petabyte Poster

    Its a matter of personal preference, they are all books designed for beginners.

    Some people love the 'Head First' stuff, others find it annoying and patronising.

    The BlueJ environment is aimed at making getting into Java easier, but since you will never see BlueJ in the real world, I question if this is a good approach.

    In general I'd go for the Deitel & Deitel book, but it should be whatever works for you, go to a good bookshop and look at some books if you can.
  5. JonnyMX

    JonnyMX Petabyte Poster

    It's a good question.

    In certification, a lot of networking-style subjects can be tackled by relative beginners as they involve troubleshooting processes and best practices that can be learned and followed.

    Programming is a bit different. It's a bit like being given a blank canvas and being told to 'paint something brilliant'. Reading a book on different brush strokes doesn't really help you.

    I found the same thing when I started programming.
    So I actually started out with an OU course on object oriented programming. As you say, this course didn't focus so much on the actual language - you kind of learned that as a consequence of the course. The real aim was to teach you how to tackle problems from the ground up, understand basic principles and learn best practice. It even covered principles such as user behaviour and interfaces.

    OU courses do cost a few quid, but by the time you've got yourself a few books, an IDE and a couple of exams under your belt, it probably doesn't make an awful lot of difference.

    Once you've mastered the fundamentals, you can then go on and learn pretty much any language that you like and go from there.
    Certifications: MCT, MCTS, i-Net+, CIW CI, Prince2, MSP, MCSD
  6. Trogdor

    Trogdor Kilobyte Poster Gold Member

    I was just wondering pretty much the same thing. Probably because I am currently doing an OU degree and will be starting the programming portion of it in October. Very much looking forward to it as it is something completely different than anything I have studied so far. I doubt it is likely that I will get a job as a developer / programmer though given how long it seems to take to make the journey from beginner to being employable, but it is interesting none the less. May pick up one of the Java books above to get a head start.
    Certifications: A+, Network+, Server+, PDI+, MCDST, HP APS Server, HP APS Desktop / Laptop
    WIP: ITIL, CCNA, MCSA, and BSc
  7. Kitkatninja
    Highly Decorated Member Award

    Kitkatninja aka me, myself & I Moderator

    I agree, I enjoyed learning with that book at Uni (many years ago) :)
    Certifications: PGDip, BSc, HNC, LCGI, MBCS CITP, MCP, MCSA, MCSE, MCE, A+, N+, S+, Server+
    WIP: Master degree

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.