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

Good Books to Learn basic Programming/Coding?

Options
  • 13-01-2011 8:28pm
    #1
    Registered Users Posts: 2,058 ✭✭✭


    Hi,

    As the title states, I'm looking for the names of books/guides etc to learn basic programming and coding. I don't even know what language I should learn. Where should I start? I'm just really interested in i the subject. I own an eBay store and after seeing the work that a company called Meanpixel did for me on my store, I was amazed at what they created.

    I'm an 'ideas' person and know that it's best to probably leave the programming/coding side of things to the professionals but I'm really intrigued. I'm currently about to start a course in Internet marketing and Digital Strategy as that is the area I want to pursue in a career and I suppose I thought it would be good that if (fingers crossed) I obtained a job in this field, I'd have a better understanding of the technical side. Basically, if I was working on the marketing strategy for a website, I'd love to know what has to be implemented technically to make an idea work as opposed to just picking up the phone and calling someone. I suppose many will say that picking up the phone to technical support etc is probably the best option and to focus on what I'm good at and to leave the technical side of things to the professionals but I'm really intrigued.

    I'd love to be able to look at a site, come up with an idea for it and know how to implement the idea myself.

    If I were to learn a language, what should I learn? Or is there something else I should learn ie how to develop applications for websites etc?


Comments

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


    I would start with c. But then again thats what I started with (still kinda there).

    It influences a lot of languages and is still relevant and provides a great intro to basic programming but good programming that is useful. (then maybe slide into c++ which will teach you oop which is much more practical and can do higher level things)

    I cant recomend a book - because they are all essentially good.

    Learn standard ANSI C


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


    Java would be a general all rounder for what your looking for. Its relatively easy to learn and is great for web app's.

    http://www.javaranch.com/


  • Registered Users Posts: 179 ✭✭namelessguy


    I would start with c. But then again thats what I started with (still kinda there).

    It influences a lot of languages and is still relevant and provides a great intro to basic programming but good programming that is useful. (then maybe slide into c++ which will teach you oop which is much more practical and can do higher level things)

    I cant recomend a book - because they are all essentially good.

    Learn standard ANSI C

    C is the devils's programming language, I hates it.

    As said Java's a great all rounder and I'd also recommend c++.


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


    What is wrong with C? (genuinely counter argue against the point I made at least?)

    I would say the same about Java (since oracle....)

    All C code is valid c++ code - c++ borrows heavily from C. Also its jumping in deep to learn an oop language before you have the basics down.


    I hope I get employed somewhere where there is someone like you in charge, instead of someone just interested in cash money and completely oblivious to whats best technology wise for the company etc.


  • Closed Accounts Posts: 72 ✭✭CLARiiON


    Maybe i'm missing something, but If i wanted to understand about websites etc
    Meanpixels team of designers have years of experience building professional websites , ebay stores, listings, e-commerce stores, flash animations, all range of print design at competitive prices.
    I'd go about learning html first...then moving towards a backend e.g. php later - if you enjoyed php that could open a few other doors such as shell scripting [but thats going off the topic, shell scripting used on unix machines] but again php is an easy language to teach yourself - a lot easier that java or c or c++ - in my opinion.
    other languages that might fall under this umbrella would be jsp and asp.


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


    Oh - web programming.

    xhtml (and css) and javascript for a start
    then maybe php and onwards


  • Registered Users Posts: 515 ✭✭✭NeverSayDie


    OP, web pages basically consist of HTML/CSS (and some Javascript for basic interactive stuff). For any kind of dynamic/interactive website, the HTML will be generated by PHP or Ruby or ASP.NET or one of several other technologies running on the backend - that's the main programming part. For a static website - just linked pages that don't store data/interact with the user - you can just use HTML/CSS (CSS is used to determine how the page looks and some aspects of its layout, the HTML contains what's actually on the page - text, links, images etc - and its rough layout).

    I'd suggest you start there, produce some basic static web content using HTML and CSS. You could get some basic Javascript in there too if you want - have a popup fire when the user clicks something, stick a timer on the page, etc. After that, you can look towards backend programming with say PHP or Ruby (Java is often used here too, or C# through ASP.NET, sometimes Python or Perl too). There's hundreds of tutorials for this kind of thing around the web - for PHP in particular, popular with beginners - Google for "HTML tutorial"/"PHP introduction" will turn up all sorts. Likewise there's an awful lot of books - just pick some well reviewed stuff from Amazon and you should be fine.

    Don't worry about tools or other software btw, you can produce HTML (just text files, fundamentally) fine in Notepad (or a better equivalent text editor like Notepad++). You can view HTML pages you produce directly in your browser. Once you move on a bit to bigger multi-page sites, you'll probably want to run a webserver on your machine - Apache is a popular choice (unless you want to use ASP.NET, in which case you can use Microsoft's IIS). Likewise you'll need Apache or IIS to do PHP backend programming - the server along with a PHP install, will run your code and produce the pages your browser will render. Again, Google will turn up myriad beginner's tutorials on all this stuff. You can add a database too (probably MySQL or one of the free lightweight versions of SQL Server) to store and retrieve data from your PHP or other code. All the relevant tools are freely available online - in the case of Apache, PHP etc, because they're open source community projects, and in the case of the MS tech (some of which is now open source too) because they want to encourage folks to work with their tech, so they're generally very supportive of beginners/hobbyists. Start out with the HTML in any case.
    What is wrong with C? (genuinely counter argue against the point I made at least?)

    In this context, where the OP wants to dabble in some web development, I don't think C is particularly relevant or suitable, and it's rarely used for such work. If the OP was starting into serious study of software development, maybe, but they appear to just want some insight into how web development works, so HTML->PHP/Ruby/ASP.NET would probably be a more suitable direction to get going.


  • Registered Users Posts: 981 ✭✭✭fasty


    What is wrong with C? (genuinely counter argue against the point I made at least?)

    I would say the same about Java (since oracle....)

    All C code is valid c++ code - c++ borrows heavily from C. Also its jumping in deep to learn an oop language before you have the basics down.


    I hope I get employed somewhere where there is someone like you in charge, instead of someone just interested in cash money and completely oblivious to whats best technology wise for the company etc.

    Ignoring the fact that you can use C++ keywords like template, class, new and delete as variables in C, what about things like
    int *i = malloc(sizeof(int) * 100);
    

    Will that compile in a C++ compiler?

    Anyway, I wish people would stop recommending C as a beginner language. C is awful even for people who know C let alone anyone starting from scratch. Although the same could be said for C++, I'll take proper string classes, RAII, templates and operator overloading over anything C has to offer.

    Plus, with higher level languages like C#, Python, Ruby, Java etc, you will get much more instant gratification than banging out some command line apps to guess a number in C. I think noobs should take their chances with being ignorant of low level programming concepts if it means they can get a project done.


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


    Of course you can use malloc in C++.

    While the OP clearly should start with another language, C is still a great beginner language. It's very small and compact yet it has everything you would need.

    It's also possible to do OOP stuff using structs and whatnot. Also the C compiler is much faster than C++ for compiling and can sometimes generate faster code depending on the application.

    For the OP though, if you want to learn the basics of programming then why not try a simple scripting language first and see how you like it. Try learning HTML first, its very easy and then learn JavaScript. With those two you'll be able to make some websites.


  • Registered Users Posts: 981 ✭✭✭fasty


    But malloc returns void* so you'd need to cast it in C++... Plus, the new operator in C++ does a bit more than allocate memory!


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


    Well you'd need to cast in C as well. You can use C-style casting in C++ as well as the newer safer ways (static_cast<type>() / dynamic_cast<type>()).

    Yeah the 'new' operator is much better really. Except when you need to alter the size of the memory.


  • Registered Users Posts: 3,992 ✭✭✭Korvanica


    Lads forget about C will ye... and try help the OP maybe? if you want to turn someone off starting programming recommend c as a starting language...

    OP if you're a complete beginner I'd recommend Java, its a good starting language and once you know Java its very easy to start C# also.

    As for books id recommend... the headfirst series of books has always helped me learn quite quickly...


  • Moderators, Society & Culture Moderators Posts: 9,717 Mod ✭✭✭✭Manach


    I'd echo Korvanica comments and Java and Headfirst series.
    However whilst C is not normally used there are still some legacy tasks for which it is useful, and it is handly for studying socket programming. I'd recommend "C For Dummies by Dan Gookin 2nd Edition.


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


    I wont bother with responding to the non relevant stuff anymore.

    OP - xhtml and css and then move on to a scripting language and a server side language along with a database of choice.


  • Closed Accounts Posts: 18,163 ✭✭✭✭Liam Byrne


    Since the OP specifically mentioned web programming, there are 4 or 5 items relevant

    1) Basic HTML (content presentation)
    2) CSS (styling)
    3) Javascript - with a focus on the jQuery library (client-side interaction)

    Then, server-side

    4) PHP (server-side logic)
    5) MySQL (database)


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




  • Registered Users Posts: 89 ✭✭tehjimmeh


    Anima wrote: »
    Well you'd need to cast in C as well.
    No you wouldn't. C allows implicit type conversions of pointers, C++ doesn't.

    http://stackoverflow.com/questions/3477741/why-does-c-require-a-cast-for-malloc-but-c-doesnt


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


    Hmm fair enough. I was always told to cast which is why I assumed that but I guess thats not the case.


Advertisement