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

Best route to go down to learn programming/software development?

Options
  • 15-06-2013 1:18pm
    #1
    Registered Users Posts: 787 ✭✭✭


    I have a degree in a social science. However I want to add to my skills by learning to programme, develop software, use data etc.

    Just wondering what would be a good qualification bearing in mind that I can't do a 4 year BSc at this stage. Is there a recognised course I could take, one that I could possibly self study? Or am I wasting my time? Cheers


Comments

  • Registered Users Posts: 92 ✭✭jgh_


    I'm not entirely certain about the irish experience when it comes to getting a job as a programmer, but here in north america you can do pretty good for yourself without a degree in it as long as you have the knack.

    Additionally you don't have to chase roles that are purely software engineering or development, you could go after product design/management or systems/business analysis... Roles where it's helpful to have some understanding of the software development process and even some programming ability to help be a liaison between developers and stakeholders / marketing / etc, because that's honestly a real challenge. If you have people skills AND can program (you don't necessarily have to be an amazing programmer) there are definitely roles there for you because programmers tend to be terrible with people and dealing with programmers can be equally terrible if you don't really "get" them (We're a bunch of over-indulged princesses because everybody needs us)

    So there's that.

    As for getting into programming, it's something you have to sort of just do. Decide you are going to do it, and be prepared to dedicate an awful lot of time to figuring out what you're doing. If you're already good with computers all the better, but it's not necessary to be able to build your own PC from scratch and install Linux on it and be fully comfortable with that setup.

    If you use Windows, C# might be a good option as a first language because it's similar to Java (which seems to be the most popular language, at least around here, by a wide margin), and it will be simpler to setup and get going on because Visual Studio Express is free and you just have to download and install it to be up and running. That said, I haven't touched Java in years so maybe the experience is different now. C# is also widely used in business, so that's a good one to know too.

    According to the "Unemployable" thread though there seem to be a bunch of people here who have gone this route before you, so they would be able to offer advice for a masters or something if that's what you're looking for.

    Anyway I hope this post is helpful!


  • Registered Users Posts: 1,922 ✭✭✭fergalr


    parc wrote: »
    I have a degree in a social science. However I want to add to my skills by learning to programme, develop software, use data etc.

    It is unclear whether you want to work in technology as a career, e.g. as a programmer, or whether you want to work in social science and hope that learning to program and/or analyze data will help?

    parc wrote: »
    Just wondering what would be a good qualification bearing in mind that I can't do a 4 year BSc at this stage. Is there a recognised course I could take, one that I could possibly self study? Or am I wasting my time? Cheers

    Its definitely possible to become a software developer after having done a degree in social science.

    But:
    - Its a long road; learning to program to an employable standard always is.
    - It'll take time and plenty of study before you get employment. (Hard to say how much time; and depends on the employment you want; I would say a couple of years; maybe more; but it varies a lot from person to person.)
    - A lot of people just dont enjoy it - be warned - find out early which type you are.


    Is it a waste of time? Depends on your intentions and motivations in the long run.
    (I find myself writing 'it depends' a lot on posts here; more information and more context leads to better answers.)


    Theres a lot of good self study stuff online; youtube; coursera; udacity etc.


  • Registered Users Posts: 787 ✭✭✭parc


    fergalr wrote: »
    It is unclear whether you want to work in technology as a career, e.g. as a programmer, or whether you want to work in social science and hope that learning to program and/or analyze data will help?
    .

    The latter mostly; I want to work in social science/business and hope that learning to program and/or analyze data will help?

    I've read someplace that the best language to start learning is C as this covers a lot of problems that pop up in python and objective-C. What do you think? Just get a decent book on C programming?


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


    parc wrote: »
    The latter mostly: I want to work in social science and hope that learning to program and/or analyze data will help?

    I've read someplace that the best language to start learning is C as this covers a lot of problems that pop up in python and objective-C. What do you think? Just get a decent book on C programming?

    I think you would be better off really learning Excel and VBA, you can write pretty amazing stuff in it. http://www.excel-vba.com/

    For real hardcore programming your employer will hire a developer or s/w company.


  • Registered Users Posts: 787 ✭✭✭parc


    I don't really want to become a software developer in the industry really. I just want to see is writing code and developing cool bits of software for me. I'm just wondering what would be the best language to start off with. I've read, it's probably best to do C as the others come easy after that. Once I get into something and I like it I can become pretty obsessed by it (in a good way) so I'm not afraid of a bit of effort


  • Advertisement
  • Registered Users Posts: 1,686 ✭✭✭RealistSpy


    parc wrote: »
    I don't really want to become a software developer in the industry really. I just want to see is writing code and developing cool bits of software for me. I'm just wondering what would be the best language to start off with. I've read, it's probably best to do C as the others come easy after that. Once I get into something and I like it I can become pretty obsessed by it (in a good way) so I'm not afraid of a bit of effort

    Java (Netbeans) or C#(Visual Studios) you can't go wrong. The reason I picked those specifically are because of the graphical user interface (gui). You can get started easy by dragging and dropping of components then you code the event/s.


  • Registered Users Posts: 1,922 ✭✭✭fergalr


    parc wrote: »
    The latter mostly; I want to work in social science/business and hope that learning to program and/or analyze data will help?

    I did a lot of Social Network Analysis in my phd.

    I wrote everything in python (or occasionally C++ for very large scale projects). I did this because Im a programmer, my undergrad is CS, and I can program very fluently, which takes years to learn.

    Being able to write everything in python myself meant that I could do any analysis I wanted to. I was not constrained by what could be expressed in an existing software package.

    I used libraries like 'networkx' and 'matplotlib' to help me make charts and graphs, but I was always able to modify them or customise them in any way I wanted.

    Being able to write programs to analyze your data, in a general purpose language like python, gives you maximum flexibility and power.


    However, the cost is that it takes a long time to learn to program competently. Perhaps years, if you want to become generally good, but I would certainly budget at least 6 months full time to learn how to crunch data in a general purpose language. You can learn to do a few things, 'cookbook' style, in much less time, but you need to budget something like that to really understand a general purpose language.


    It is a huge help, to be able to manipulate and analyze your own data, in any sort of a social science setting. Probably in business analyst settings too (?)

    The reason it is a help, is because you are able to crunch things yourself. If you need someone else to run your analysis for you, you are always dependent on their good graces to help you. Even if it is their job to help you, you will probably be one of several people they can help.

    Furthermore, there is always a 'loop' where you decide what to analyze, and then see the results, and realise that you really meant to analyze something slightly differently. (just like the compile-test-debug loop normal programmers spend their time in.)
    If another human has to be in this loop with you, then it slows your whole velocity down, and makes you less effective at whatever you do.

    So if you can analyze your own data, you will do much better at any sort of data analysis role.


    But does that mean that you should learn a general purpose programming language, like python or c?

    That is a hard decision.

    There are some very good tools out there for data analysis. There are tools like SPSS (have you seen it? if not, download a free trial and play with it). This is a tool designed to allow people to easily analyze data. Attaining a level of proficiency with SPSS would be easier than learning a general programming language, and it might enable you to do 90% of what you might eventually want to do. Furthermore, as it is designed specially for data analysis, many common tasks will be very easy to do.

    Think hard about whether you should learn a tool like that well, as opposed to learn to code generally.


    In a similar vein, you could learn to use Excel very well, and perhaps start writing macros in Excel, etc. That could also take you a long way. Many people work in business analyst data analysis jobs where they are just very capable with Excel, and can do great things.


    There are also languages/environments like 'R', which are geared for data analysis, and are some way between a general purpose language like Python, and a tool like SPSS. I do not recommend that route, as people seem to too often learn to half 'program' cookbook style. I think this has the disadvantages of each side.


    So, think hard about what you want to do. If you want to invest a lot of time, learning a general purpose programming language will give you the most flexibility. Also, other things will seem easy afterwards. But it is a long journey.

    parc wrote: »
    I've read someplace that the best language to start learning is C as this covers a lot of problems that pop up in python and objective-C. What do you think? Just get a decent book on C programming?

    If you want to learn general programming, C will really teach you fundamentals at a very low level. Investing the time to learn C properly will force you to become a good programmer, with a solid understanding of low-level fundamentals.
    Investing half the time it takes to learn C properly will make you frustrated and hate programming and unable to do anything useful.

    C is painstaking and takes a long time to do anything. It is true that if you master it, other languages will seem fairly straightforward.


    But if data analysis is your goal, I would suggest Python instead.
    There are probably better intermediate quitting points, where what you have learned can still be useful.


    And Python is lovely. (Note, thats a subjective opinion; but Im right :P )



    I suggest you play with SPSS first, do some tutorials, and see if it is taking you where you want to go.

    If its not, then start finding out some information about Python, maybe do a few online python tutorials, start mucking around with some data analysis packages.

    If you are determined to learn programming, and that you are completely sure it is a life skill that you want to invest substantial amounts of time in, and devote many years of study to, and you want to learn it as painstakingly and solidly as you can, then maybe start with C. That is if you are sure the path of the programmer is for you over the long term!


  • Registered Users Posts: 1,109 ✭✭✭Skrynesaver


    If you need to perform statistical analysis but want to tailor your programs outside what is offered by pre-built libraries I would recomend learn iing to use R http://www.statmethods.net/


  • Registered Users Posts: 1,922 ✭✭✭fergalr


    If you need to perform statistical analysis but want to tailor your programs outside what is offered by pre-built libraries I would recomend learn iing to use R http://www.statmethods.net/

    In my opinion, R is a disaster.

    It is semantically unclean. It is very confusing for a new person.
    There are many ways of doing the same thing. In particular, there are many ways of representing ordered data.

    I would strongly discourage R for beginning programmers.
    You can learn to do a lot by programming 'cookbook' style in R, but it'll be very frustrating when you try and combine things in unanticipated ways. If you want to do that kind of thing, you are probably better off just sticking with SPSS.

    Furthermore, R is entirely pass by value. Disaster.
    CRAN is nice; there are a lot of powerful libraries already implemented in R (legacy code!)
    I wish the statisticians and scientists had chosen a better language to write their libs in; on the plus side, I think we are seeing a gradual switch to Python, because core R language is broken.


  • Registered Users Posts: 2,426 ✭✭✭ressem


    parc wrote: »
    I don't really want to become a software developer in the industry really. I just want to see is writing code and developing cool bits of software for me. I'm just wondering what would be the best language to start off with. I've read, it's probably best to do C as the others come easy after that. Once I get into something and I like it I can become pretty obsessed by it (in a good way) so I'm not afraid of a bit of effort

    Create a free account on http://www.codecademy.com/ and try them out in the online training site.

    I'd suggest starting with the HTML and JQuery courses to get a flavour of text manipulation and methods/ function, then you have the options of tasters for Python and Ruby.


  • Advertisement
  • Registered Users Posts: 3,300 ✭✭✭Gatica


    +1 for Codeacademy, very simple lessons and takes you step by step, plus they have a good Q&A forum.

    I would suggest Python for first time programming. It's a clean programming language and while different data types can be dangerous if don't keep track of your program, it's easier to get your head around for first-time user. No semicolons or curly braces to contend with. And the Codeacademy course eases you nicely into thinking in logical/boolean terms.

    I don't thing HTML would do much good in processing any kind of data and you'll want to start setting up own web server to get anything useful out of it or jQuery.

    C is a very good language, and is often overlooked by Computer Science courses, skipping straight to Java. C is a good fundamental skill to have if you like programming. I'd get a handle on what programming is first though, especially if you're doing this on your own and not through a college course.


Advertisement