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

What skills to improve to get into software development?

Options
2»

Comments

  • Registered Users Posts: 962 ✭✭✭chavezychavez


    To my mind, the basic essentials around code programming is knowing what you want to do and planning how to do it.

    If you're proficient in 1 computer language, then after that, its a case of learning various code structures and semantics.

    Also, considering that the wheel has pretty much been invented for the majority of the things you'll need to do already, all you're going to have to do is Google for a snippet of code that will help you out.

    I know I (and I reckon a huge number of current programmers) wouldn't be able to function with looking up Google for different things and I certainly could thinks about going back to reference books again..:eek:.

    On the application side of things, databases, databases and databases.
    Download the MS SQL Server Express editions and get your SQL (Table Creation/Alteration, Views, Procedures and Triggers) up to standard. Or go down the Oracle route if you prefer. This will also stand to you for ASP.NET if you want to get involved there

    Going by recruitment websites (last time I looked), there also seemed to be an demand for OLAP programmers - cube design and building, reporting services and Integration Services.

    These are all things that you can do in your own time and aren't that mind numbingly boring.

    Good luck with what you decide. Just remember, try to get into the field that you want to work in, otherwise you could be in a "bucket" of a certain area so to speak for a long time.


  • Registered Users Posts: 5,618 ✭✭✭Civilian_Target


    @IRLConor: Nah, what I was really getting at is, when hiring programmers, do you consider the fact they get demotivated by your usual supects to be a plus or a minus?

    Interestingly, my book library looks quite different. I would recommend:

    The Little Schemer - How to program by example. Reading this will change they way you program. (And if you ever wanted to program with examples involving peanutbutter and jelly sandwiches, now is your chance)
    Domain Driven Design: Why programmers do what they do, and when to do what?
    Pro Java: Very relevant in the context of this thread, a good book for Java programmers to prepare you for real life problems that you will see when you hit your first jobs. It was my bible for the first 6 months on the job, although it's a bit too UI focussed for my liking.


  • Moderators, Science, Health & Environment Moderators, Social & Fun Moderators, Society & Culture Moderators Posts: 60,098 Mod ✭✭✭✭Tar.Aldarion


    I want all these books but no way i could buy them! Felt bad enough just getting the SCJP book.
    Suppose that and maybe one more book will do for now. The net is great and all but I like books more.


  • Subscribers Posts: 4,076 ✭✭✭IRLConor


    @IRLConor: Nah, what I was really getting at is, when hiring programmers, do you consider the fact they get demotivated by your usual supects to be a plus or a minus?

    I don't see it as a plus or a minus, just a fact of life. I don't think there's anyone out there, programmer or not, who wouldn't be demotivated by a crap boss or incompetent co-workers. Maybe programmers are a little more sensitive to stuff like that, I dunno.

    I wouldn't judge a programmer too harshly for being demotivated but if they were a co-worker and just threw up their hands and sat down and refused to try to work around their demotivation I'd be irritated at the very least. I would certainly respect a programmer who was demotivated by the work but figured out a way to work through it.

    EDIT: I must have a proper look through your books. Domain-driven Design looks particularly interesting.


  • Subscribers Posts: 4,076 ✭✭✭IRLConor


    I want all these books but no way i could buy them! Felt bad enough just getting the SCJP book.
    Suppose that and maybe one more book will do for now. The net is great and all but I like books more.

    Books are expensive. :( I built mine up over time and more than a few of them came home in a suitcase from cheaper countries.

    I'm willing to consider lending some of mine. If anyone's interested, drop me a PM and we can negotiate. :)


  • Advertisement
  • Moderators, Science, Health & Environment Moderators, Social & Fun Moderators, Society & Culture Moderators Posts: 60,098 Mod ✭✭✭✭Tar.Aldarion


    Thay are reallly expensive in some cases. Law books were bad too in college I recall.
    I love the sound of your programming pearls one, that's why I want to do programming. I love problems and then eventually getting it right and looking at something I wrote do something. Unfortunately I don't get to that last bit! :)


  • Registered Users Posts: 77 ✭✭slogue


    Def learn some sort of SQL (Oracle, SQL Server or even MySQL) and get a certification if possible

    http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=155&p_org_id=53

    The oracle exams are relatively cheap

    On the learning SQL at college I agree that not enough practical SQL is done, we spent hours doing the theory (which is needed) but needed more practical to back it up


  • Registered Users Posts: 515 ✭✭✭NeverSayDie


    Just to add to the list of book recommendations;

    Code Complete is another good one. Not platform-specific, it's more of a general guide to software development practices;
    http://www.amazon.co.uk/Code-Complete-Practical-Handbook-Construction/dp/0735619670
    If you're interested towards the engineering/project management end of the business, The Mythical Man Month seems to be considered a classic, though I haven't gotten round to reading it myself yet;
    http://www.amazon.co.uk/Mythical-Month-Essays-Software-Engineering/dp/0201835959

    Along with the GangOfFour design patterns text mentioned earlier (a great book), this one may be a more approachable intro to the topic, very popular book;
    http://www.amazon.co.uk/Head-First-Design-Patterns-Freeman/dp/0596007124

    Also on design pattern lines, in spite of the dubious title, this book is a pretty good discussion of the use of various patterns specifically for large scale software systems (kind of an enterprise-specific version of the GoF book);
    http://www.amazon.co.uk/Enterprise-Application-Architecture-Addison-Wesley-signature/dp/0321127420
    Just started into this one, which also discusses patterns applied to large software setups, seems pretty good so far. Like a hands-on version of the book above. It's aimed at .NET folks, but it's really an architecture book, so probably of potential interest to anyone working with enterprise software design;
    http://www.amazon.co.uk/Microsoft-NET-Architecting-Applications-PRO-Developer/dp/073562609X

    Plenty of good advice given out in this thread already. Just to add; in commercial development, you tend to spend the majority of your time working with other peoples' code, not writing your own systems from scratch. You're invariably extending, updating, patching, bug-fixing or otherwise modifying an existing codebase (especially at the junior level, that's all you're likely to be doing). With that in mind, being used to reading through large codebases is a good skill to have. Maybe grab the codebase for a smaller open source project of some sort, and see how you manage in terms of figuring out bits and pieces of it.


  • Registered Users Posts: 2,150 ✭✭✭dazberry


    I tend to horde books that should really see a new home, I've nearly 20 years worth, and I don't know why - I can't see myself using the DESQView API, or writing my own 32bit OS :eek:.

    I discovered a seller on ebay in the states that sells "older" versions of books, for instance Pro WPF in .Net 3.0. Some of these cost US$4 to buy and US$10 to ship, and books can be slow to arrive - but I've got some great deals there. A girl in work (yes we have a girl programmer) signed up to an online book site which looks really good. We were going to try and get work to pay for a corporate subscription but they're a right bunch of bankers and it would have been like getting blood from a stone.

    and just to add to the every growing list :)
    Agile Software Development 2nd Edition - Alistair Cockburn

    Rapid Development - Steve McConnell


    D.


  • Closed Accounts Posts: 22,479 ✭✭✭✭philologos


    Thanks for this thread! I'm personally wondering about this as well. It seems that you really do have to do a lot of work outside what is generally taught in the Computer Science degrees.


  • Advertisement
  • Registered Users Posts: 11,980 ✭✭✭✭Giblet


    You can incorporate outside learning into projects, especially final year. I did some XNA programming in 4th year, MVC + Hibernate stuff using Spring in 3rd year. I still use a lot of the stuff I learned doing those projects to this day.


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


    Jakkass wrote: »
    Thanks for this thread! I'm personally wondering about this as well. It seems that you really do have to do a lot of work outside what is generally taught in the Computer Science degrees.

    It really helps, college programming is badly taught in most cases.
    Try get into the swing of formulating simple algorithms to
    simple problems.

    Don't worry about the implementation of syntax between
    day C vs Java vs whatever, just wory about the meaning
    or semantics.

    I.e work out how to square a number on paper, than code the
    algorithm in C, and then in perl/ruby if you want:)

    Do not worry about the specifics of each langauge, develop
    a proper problem solving strategy first.

    People seem to be freaking out about not knowing xyz
    here.

    No employer worth their salt expects grads/newbies to know
    a wide variety of tech. I google alot of stuff I don't know.

    Learn how to RTFM, and it will stand to you in most cases
    where you need to get up to speed with something.

    It's tough at first, but keep with it and you will get better.
    Regular practice is essential, you will stagnate if you don't work.


  • Registered Users Posts: 5,618 ✭✭✭Civilian_Target


    Domain Driven Design is very good.
    Domain Driven Design Quickly is a summarised version of the book that is free (so long as you give them your email address) and gives you a flavour, but it's still most of 100 pages, so it does at least tackle the issues at a reasonable depth.

    Tar The SCJP book is not a good way to learn about programming. If you can still return it do. It's there to get you past an exam. Learn with a different book, and then get it from a library 3 weeks before the exam to learn the inside bits. Something like Pro Java which I already recommended will teach you the useful 70% of stuff on the exam, with good practical exercises and more useful examples.


  • Moderators, Science, Health & Environment Moderators, Social & Fun Moderators, Society & Culture Moderators Posts: 60,098 Mod ✭✭✭✭Tar.Aldarion


    I agree with you if I was just trying to get a certificate, but I am going through it painfully slowly googling everything and working on complete tangents off of the book, I'm only on like page 20 now. I'm trying to learn stuff rather than pass the exam, the opposite of programming in college. I'll look out for your book too!


  • Closed Accounts Posts: 28 joanbrent


    Achievement in the IT field depends on a very hands-on skill set… so you should learn a well-paying skill in high-demand. Make sure it is a skill you love, so you will enjoy working with it. Find a good IT training service… which has a proven plans for getting people to the top of their career.


  • Registered Users Posts: 40,038 ✭✭✭✭Sparks


    Thay are reallly expensive in some cases.
    File it under CPD and check the used section in amazon, special offers, etc, etc.

    And I'd add to the list (which is quite excellent already):
    • Knuth. Yes, mentioned already. Yes, it is that good.
    • A Pattern Language. The original that the gang of four book is based on. Not computer specific, but good design reading nonetheless.
    • Unit Test Frameworks. Possibly not the best book on the subject, I haven't read them all, but forget that and get any book on the subject. If there's one thing I'd add to the current undergrad curriculum as a basic, that's probably it. Well. After remedial English, perhaps. :D
    • Tufte. If you do any sort of presentation of information, either for program output or for an actual stand-up-and-talk presentation to other people (and you will end up doing both, regularly), you really should read Tufte at least once. There are four books which nearly count as art, they're so well made, and there's a website. The man invents new kinds of graphs. It's rather hard to top that as a recommendation (I know it doesn't sound like much, but think about it for a minute).

    There are others, like Refactoring that are on my work wish list (I like to keep two wish lists on amazon.com, one for fun reading and one for work/cpd stuff) but I've not read them yet so I can just pass on the recommendations of others. Which isn't as much use as you'd think.

    Also, follow blog posts. Joel's okay, but I find he gets a bit under my fingernails and I disagree with a lot of what he says (the whole cult-of-the-rockstar-programmer gets tiring after about four minutes), so I track others (Google Reader, or any other RSS reader for that matter, is your friend, especially if you have something like an iPhone or netbook and take the train every day to work). Coding Horror, the Daily WTF, Beautiful Code, ReadWriteWeb, various Planet feeds (Planet PHP, Planet PHP.ie, Planet Python, Planet ILUG, Planet MySQL, Planet Postgresql, whatever is relevant to the area you're going into), DZone, and (good grief) Zed Shaw, all of these I've found decent at one stage or another, your reading list tends to evolve and change over time as you move from job to job or even project to project (and as the authors do the same thing). Think of it as a cheap way to go to a programmer's meet, but with everyone thinking about what they say, being able to enter and leave the conversation at will without missing anything, and not having to sit in a dark pub with flat guinness while wearing socks and sandals.

    :D

    (That last part is in jest, for the humour-deprived. I've never gone to one of these meetups, but that's because every time I tried, a client's machine exploded or something else caught fire. I think they're actually a pretty brilliant idea for both CPD and networking - IT in Ireland seems to be a pretty incestuous little industry from what I've seen of it).

    Also, read code. Find a good open source project, checkout its repository, and browse through the code. (And when you're ready, if it has a peer review thing going on, fix stuff or add stuff and submit patches - both the writing and the subsequent code review are fairly useful things to do, not to mention a nice little ego boost when your patch is submitted. It can make a whole monday afternoon that little bit brighter).


  • Registered Users Posts: 40,038 ✭✭✭✭Sparks


    joanbrent wrote: »
    Achievement in the IT field depends on a very hands-on skill set… so you should learn a well-paying skill in high-demand. Make sure it is a skill you love, so you will enjoy working with it. Find a good IT training service… which has a proven plans for getting people to the top of their career.
    After about as long as IRLConor programming in industry and another six or seven years programming in a research lab before that, I've never once heard of an IT training service like that, or of anyone who used one.

    I've worked for companies teaching training courses, yes, but those companies didn't do the kind of personal CPD management you're talking about, and frankly, I'm not sure I'd ever hire an engineer who trusted their CPD to an anonymous company like that, CPD is something you're meant to take a measure of personal responsibility for. (IEI CPD programmes and the like are a different thing, they're based on 1-to-1 mentoring from accredited mentors rather than anonymous CPD management companies; but mostly the IEI seem restricted to Civil Engineering in Ireland, and the IEEE version for computer programming doesn't seem to work the same way).


  • Closed Accounts Posts: 9,183 ✭✭✭dvpower


    Some SQL and some basic database design knowledge would for me be a must.

    On the lists of skills mentioned on some other posts, I wouldn't be too concerned. I find that if a graduate presents him/herself with a large list of skills, I'm immediaty suspicious (and it usually turns out that they only know of them). So, my advise would be to gain some familiarity with some of the languages, tools, techniques and patterns mentioned above, but don't try and sell them as skills (rather as an illustration that finishing your degree doesn't mark the end of your learning).

    But if you've been studying an OO language like Java for a number of years, make sure you can adequately answer some stock questions like 'What's Inheritance?' or 'Explain Polymorphism?'

    Even for for experienced software engineers, a lot of skills you learn along the way fall out of your head after a while of non use. (Maybe that's just me:D).

    Someone mentioned a book called Code Complete by Steve McConnell. This is an excellent book and well worth getting. Its not about particular technologies, its about a common sense approach to software development. My copy is about 10 years old and there's not much in it that's out of date.


  • Registered Users Posts: 2,379 ✭✭✭toiletduck


    Anyone recommend any good programming websites along the lines of Joels or Coding horror?


  • Closed Accounts Posts: 309 ✭✭Dave D


    toiletduck wrote: »
    Anyone recommend any good programming websites along the lines of Joels or Coding horror?

    codesqueeze Is a pretty good blog, Found the 25 chuck norris programmer jokes hilarious. :pac:


  • Advertisement
  • Registered Users Posts: 646 ✭✭✭vigos


    this guy put together an interesting list of books, would be interested to hear your thoughts on it

    http://knol.google.com/k/jurgen-appelo/top-100-best-software-engineering-books/z7e4mx2g6lir/3#


  • Registered Users Posts: 515 ✭✭✭NeverSayDie


    vigos wrote: »
    this guy put together an interesting list of books, would be interested to hear your thoughts on it

    http://knol.google.com/k/jurgen-appelo/top-100-best-software-engineering-books/z7e4mx2g6lir/3#

    Glancing through the first 20 or so of that list, yeah, bigtime. If you're going to read books on software development, read those. Most of them aren't really suitable for beginners though - best learn some programming first, and then get on to the software development stuff once you've gotten some experience.


  • Registered Users Posts: 40,038 ✭✭✭✭Sparks


    Some of those are okay. I'd strongly disagree with his ordering of them though. And some won't be of use to everyone: Database stuff won't be of much use to embedded programmers working on PIC chips for example.

    On top of which, 100 is too many. Apart from the cost and time to read them, 100 is enough that the dross is starting to get in with the good and if you know enough to distinguish them, it's likely you've already read them anyway.

    Thinking about it, I can't even get an "all-time greats" list out to ten, let alone 100.
    1. Knuth
    2. Code Complete
    3. Refactoring
    4. The Pragmatic Programmer
    5. K&R C
    6. The gang of four
    7. The design and implementation of Unix (any version)

    There's a few others I'd usually recommend, some are language-specific (like Assembly Gems or Graphics Gems or Hakmem - not a book, but google it, it's worth the read), others are just not really programming but more design-based stuff (Tufte's books, Don't Make Me Think and so on). But for general programming? There aren't all that many Great Books. And how many copies they sold on Amazon.com is not a good way to spot them either :D


Advertisement