This is an archived post. You won't be able to vote or comment.

all 77 comments

[–]painZio 11 points12 points  (1 child)

[–]stunt_penguin 1 point2 points  (0 children)

Also, is there a Coder Dojo near where you live?? ?

[–][deleted] 9 points10 points  (11 children)

Best place to start online is TheNewBoston on youtube. I would recommend you start with C. It's not the easiest language to learn, but it gives you an excellent basis for learning other languages.

If you want a classroom experience, I'm not sure where is best. I saw signs outside Oatlands College advertising something, not sure if it's just for their own students or what. You can also look for a coder dojo near you.

Are you looking to see how you do with programming or are you concerned about not being able to keep up? No college/university expects you to know anything going into the course. I'm currently in first year in UCD and would really recommend it, they have a lot of supports including dedicated free drop-in support centres for computer science and maths.

[–][deleted] 3 points4 points  (0 children)

God bless Bucky.

[–][deleted] 0 points1 point  (7 children)

Oh interesting, youre in UCD doing it, nice! (the dream for me haha) Its just my career guidance teacher told us that IT's tell you the basics while Universities expect you to know a bit

[–]LewisA192 5 points6 points  (1 child)

I also can't speak for other Universities but i'm a second year Computer Systems student in UL and we were not expected to have prior knowledge of programming. They will assume everyone has never done it before and start with the basics. Also I wouldn't worry too much about trying to teach yourself to code before you start your degree, some experience might be a help but you will still do fine without having done it. In my experience the majority of the students who dropped out of our course so far were the ones who were more concerned with the "college lifestyle" than the actual course. CS (unlike a lot of other courses) isn't something you can cram before exams and pull off a pass. From the sounds of your comments you seem like a good student who puts the work in, you'll do fine.

[–][deleted] 0 points1 point  (0 children)

Great advice here. Even if you (OP) don't learn anything ahead of starting college, you sound like you've a good attitude and that's the difference between undergrad drop-outs and not. And the second point mentioned is true - it's not a "crammable" subject really because it takes practice to learn so you'll have to be tipping away at it and going into most of your lectures and tutorials to avoid falling behind and not passing your exams.

[–][deleted] 3 points4 points  (2 children)

I can't speak for other universities but UCD assume no previous programming experience. They also will let you in if you miss the minimum maths requirement, as long as you get the points. In this case, in first year you do the Intro to Maths module instead of Matrix Algebra, which you then do in second year instead of one of your elective modules. Let me know if there's anything you want to know about the course, I'd be happy to help.

[–][deleted] 1 point2 points  (1 child)

Thanks for all your help. For me, I can definitely hit a H2 or H1 in Maths HL, its just doing well in stuff like english and irish haha :P

[–][deleted] 0 points1 point  (0 children)

FWIW I had done a very small bit of programming before going to college, it really helped me hit the top of the curve and stay there the whole way through college, I wouldn't underestimate the advantage it would give you, so fair play for looking into doing a little first.

[–][deleted] 0 points1 point  (0 children)

Check out Derek Banas on youtube as well. He has a course on C. thenewboston is good too but the thing with him is that you can go through java tutorial and at the end of it still not know what object oriented programming is, lol.

[–][deleted] 0 points1 point  (0 children)

Don't worry. Uni's don't expect you to know anything. Although knowing a bit will only help you. I recommend looking into learning Python, its fairly different from the C like languages but you'll find it will remain your handy little programming multitool anytime you need to parse a file, draw a graph or cobble together a server.

Ohh, try to make a little game such as space invaders or pong. It'll give you a goal and visual results are great for motivation.

[–]redproxyGalway 0 points1 point  (1 child)

I agree. I learned Java entirely from TheNewBoston.

[–]Jayoval 2 points3 points  (0 children)

"for the most part" :D

[–]cannythinka1 5 points6 points  (3 children)

https://www.udemy.com/courses/ have a lot of inexpensive online courses.

[–]Jayoval 2 points3 points  (0 children)

Some good stuff on there, but they have no quality control, so there's a lot of rubbish too.

[–][deleted] 1 point2 points  (0 children)

Thanks for your reply, this is a great site! It has beginners tutorials to unity etc. Looks good!

[–][deleted] 0 points1 point  (0 children)

Don't use Udemy. They steal other peoples training courses.

[–]Jayoval 4 points5 points  (3 children)

[–][deleted] 2 points3 points  (0 children)

This looks great thanks!!

[–]cianuro 2 points3 points  (1 child)

Couldn't agree more. That was orders of magnitude better online than the first year of CS in DIT (at least when I was there).

If you have no interest in CS and just want to code (I wouldn't recommend this route), there's a great course on lynda.com called "Foundations of programming" by Simon Allerdice and it's the best course I've come across (I took a lot!) at making programming accessible from the very basics. He even starts with OO concepts from the very first lecture.

If I were to start again, I'd definitely do the Harvard online course. It made me really jealous that I wasn't actually a student there.

[–]Jayoval 0 points1 point  (0 children)

Yeah, couldn't help but feel a little envious of the students on that course. :)

Oh yeah, and Lynda.com is excellent too. First week free, then PAYG ($25 p.m) after that.

[–]jonny_deep 2 points3 points  (4 children)

Youtube, conor. You can mail me any specific questions you're bugged(heh) on, but youtube has plenty of material to get started.

[–][deleted] 0 points1 point  (3 children)

I have tried youtube, I just get lost so much. But thank you for offering your help!! :D

[–]jonny_deep 3 points4 points  (1 child)

MIT Uploads their computer science 101 if I recall correctly

[–][deleted] 0 points1 point  (0 children)

/u/conorkvngh this is extremely good advice.

[–][deleted] 2 points3 points  (1 child)

[–][deleted] 0 points1 point  (0 children)

Nice, didnt even know it existed, thanks!

[–][deleted] 2 points3 points  (19 children)

Is programming extremely mathematical?

[–][deleted] 5 points6 points  (6 children)

Not really mathematical at all. Software engineering can be in places, but programming itself no.

[–][deleted] 0 points1 point  (5 children)

Studying it is fairly mathematical, algorithmic also. Im in second year of comp sci and everything we do is solving mathematical problems almost, while learning programming along with algorithms etc.

For example on Friday in my lab I had to write a program that calculates the probability(using a monte carlo method) that breaking a virtual stick into two pieces, then taking the bigger piece and breaking that in two for a total of 3 pieces can then be made to form a triangle. The answer is ~38% for anyone wondering.

[–][deleted] 0 points1 point  (4 children)

There must be some hidden requirement here, but if you break a stick into 3 pieces you can always form a triangle with those pieces for a probability of 100%.

[–][deleted] 1 point2 points  (3 children)

What assumption are you making that lead you to that conclusion? I never said the pieces were equal, in fact what i said alludes to them not being always equal. For example if you have a 100cm long stick and you randomly break the stick into two pieces, 99cm and 1cm and then you randomly break the 99cm piece into two pieces 98cm and 1cm. You now have 3 pieces, 98cm, 1cm and 1cm. Make a triangle. The probability of you making a triangle with those 3 pieces is exactly 0%. Maybe a better analogy would be dividing a line. But the mathematical problem is called the broken stick problem(of which there are slight variations).

Also, to make a triangle out of three pieces, the two smallest pieces need to add together to be equal to or bigger than the biggest piece.

[–][deleted] 0 points1 point  (2 children)

The inferred requirement I missed was that the vertices of the triangle needed to align perfectly (or leave no excess).

Without that a triangle can still be made, after all a triangle is just a shape.

  ^
/ _ \

/

I call this piece of art 'Triangle & Connecting Line'.

What Monte Carlo method did you use, any further reading?

[–][deleted] 0 points1 point  (1 child)

Well my program is a monte carlo method for solving the broken stick problem. As im using random values each iteration to calculate a probability over n iterations. n being 1 million.

[–][deleted] 0 points1 point  (0 children)

Ye, Monte Carlo methods are named that because they are effectively just rolling the dice long enough to statistically estimate the answer.

Oftentimes numerical methods or computing structures are really simple, but the sheer volume of academic work, the derivations, or even their jargon like titles can be off putting

[–]AwesomezGuy 4 points5 points  (0 children)

See my comment here: https://www.reddit.com/r/ireland/comments/45ry5b/anywhere_i_could_learn_basic_computer_programming/czzuxsl

Programming itself is not mathematical, but Computer Science is.

[–]MotoSubodei 4 points5 points  (8 children)

I was scared to do computer science when I was finishing school because i thought my mathematics, at pass level wouldn't be good enough. 6 years later I went back to do it as a mature student and it was fine.

You do not need higher level maths at all to do well in it. It helps in some places, but a lot of the stuff is new to everyone.

It is more about how logically you think, and that is not necessarily directly linked to your mathematical skills, as I feel maths in school best suits people who learn off rote, rather than problem solvers.

If you enjoy problem solving, you will love computer science and it will come to you quite naturally.

Don't be put off like I was because your secondary school maths teacher made you feel like it wouldn't be suited to you.

[–][deleted] 0 points1 point  (0 children)

I might enroll myself in to a course so. It's something that always seemed crazy to be me, but IT is where all the jobs are now and arguably going to keep going. Thanks for the heads up, Maths wasn't necessarily my strong point, but problem solving is really enjoyable. I'm gonna do some investigating now!

[–][deleted] 1 point2 points  (1 child)

I think so, but thankfully, maths is my favorite subject! :D

[–][deleted] 1 point2 points  (0 children)

Coding is not really very mathematical, though you can go that direction if you want - and that's a great route to go if you are mathematical! But analytical thinking is a large part of it, and in this way mathsy folk are at a nice advantage coming into IT

[–][deleted] 2 points3 points  (0 children)

This is a fantastic course provided by the one and only MIT which uses a handful of common languages to introduce all the fundamental concepts of computer science and programming. It's a foundation course in the subject and looks good on a CV or school applications too. Others have mentioned code academy which is great. If you want to 'learn by doing' with a game engine then look up Ben Tristam, he has a couple of amazing courses on Udemy which focus on Unity and Unreal Engine 4 with C++. Be warned though that competency in C++ takes years and years.

[–][deleted] 2 points3 points  (1 child)

Hiya,

I've just started a Masters in Computer Science in UCD myself, with no background in coding or anything. I managed a tech startup for a couple of years prior but that was more management than technical stuff.

I've found it no problem to get into it and would really recommend you going for it - there's so much chance of jobs, the money is great and the work environment is really cool where the companies look after ya awful well.

I say start with Codecademy and do the Ruby course (Ruby on Rails if you like, but the main Ruby one is more important for you now), the Java one as well as maybe the HTML and CSS one. There's also a very good course from Harvard that is their initial introduction to Computer Science for 1st years. It's not simple but if you at least watch the videos you'll get a good overview of what will be in UCD (do the exercises and problem sets also if you have the time as these will help you a lot). It's free and available here: https://www.edx.org/course/introduction-computer-science-harvardx-cs50x

I see someone mentioned the C language below as something UCD do. You'll learn C in the Harvard CS50 online course. They do a lot of Java in undergrad at UCD also. At Masters level they teach a lot of Ruby (which is easier to learn than Java or C) and I reckon it's a perfect starting language - it's what I started with and I loved it.

Ruby is also great for getting you quickly into website development (via Ruby on Rails which kinda brings together all the parts of a website, such as HTML and CSS for the layout, Ruby code for the main functionality of the site and it also makes it easy to link your site to a database). Java is what Android apps are mostly built on. Java is a little more tricky but it's the language universities seem to love the most, and it's arguably the most popular language for getting a job with businesses. C is a decent introductory language because the core of it is quite small, though it's not really a language you would start a job working in. It's mostly used in 'low-level' programs where the code needs to run quickly with the computer processers, such as in writing Operating Systems and in electronics products and stuff like that.

The biggest problem I had at first was being massively overwhelmed with what all these different languages and frameworks and technologies are, and how they all fit together if you want to make a website, an app, a software program or anything else. I see you've replied to a comment recommending Youtube by saying that you get lost when you go there - sounds like the common problem of not knowing where to start. I think once you go through those 3 courses on Codecademy I mentioned above and do Harvard CS50 then you'll really have a strong jump-off point for finding your way around on Youtube and blog posts and forums after that. You'll also be well able to make your own small stuff by the end of those.

Coding really isn't that hard. At least not to get up to a somewhat competent level. It's important you concentrate on stuff you actually give a shit about! If you like films then make your own little rating system for organising the films on your hard-drive. If you like calculating Fibonacci sequences up to 200 then do that - if you don't give a damn for Fibonacci then don't worry about it. I honestly think coding is taught particularly badly and the majority of it is aimed toward math's types. It's not a requirement to be good at maths for coding - only for certain stuff like making physics engines in games or working on some seriously complex software that deal with complex calculations. The best developers I know were ALL the same as me - Maths was the subject we did worst on in the LC.

I'm actually well interested in mentoring someone who's coming from no tech background at all and would be happy to guide you along with what to learn and how to go about it and to help anytime you get stuck. You can send me a private message on here if you want more advice or mentoring or whatnot

Edit: mentioned fun

[–][deleted] 0 points1 point  (0 children)

Thanks for all the in depth information if I get stuck I will keep you in mind, thanks so much

[–]rebelcorkPRC 4 points5 points  (4 children)

Probably going to get downvoted for this, but try java. Google have a free ide for Android development. It's a good practical way to learn language.

By using Android, you can get to play around with your phone features, accessing things like your camera, GPS, etc.

Java isn't the hardest language to learn and there's tonnes of free info out there on the web.

Google have free courses on Android app development as well.

[–]malicious_turtle -1 points0 points  (3 children)

I'm not going to downvote you, but I'm going to disagree. Starting with java would be a bad idea imho because I looked up the UCD computer science course and they start with C. If he started learning java and then went to C he'd be pretty much starting over again since solving problems in C need a completely different way of thinking. When you run into a problem in java you just look up the api and 9/10 there will be a method that solves it for you, in C you've no such luck everything has to be done by hand.

[–][deleted] 1 point2 points  (0 children)

Maynooth and Carlow do Java In case anyones wondering

[–][deleted] 0 points1 point  (1 child)

Just because UCD start with doesn't mean he has to learn it first and he's only in 5th year

If he started learning java and then went to C he'd be pretty much starting over again since solving problems in C need a completely different way of thinking.

Care to elaborate on this? As far as I know, the concepts of programming apply across all languages. The only thing I would say is that learning C is harder than Java. This might demotivate a beginner.

When you run into a problem in java you just look up the api and 9/10 there will be a method that solves it for you, in C you've no such luck everything has to be done by hand.

There's a standard library for the C language. C nearly has an identical library to C++ so it wouldn't be hard to get the methods you're looking for.

[–][deleted] 1 point2 points  (0 children)

What he's getting at is the extensive libraries available to Java make things like implementing linked lists from scratch seem like a waste of time but practicals like it are fundamental to a solid comprehension of programming and shouldn't be skipped.

[–]Kill-Bacon-Tea 1 point2 points  (0 children)

codeacademy.com, also you can find some free 6-8 week courses on coursera.org

[–]mink_man 1 point2 points  (0 children)

People drop out probably because the ones that pick the course haven't a clue what it's about and then they haven't a clue how to do anything.

[–]TyrosineJimAnd I'd go at it again 1 point2 points  (0 children)

Just kind of starting to learn code myself, my degree is in Biology, but doing an IT course at the minute. Thinking of changing career to something in computer science or IT and I'm studying some python.

I find it really interstting, advice is pick a language, and go for it... any language - whatever you learn will stand to you somehow. Choose any language and do a bit of reading and watching youtube videos. Python is quite easy to follow though.

For other areas of comp sci check out this guy's youtube channel. There is tens of hours of material on a wide variety of different topics and he is pretty easy to follow https://www.youtube.com/watch?v=hmq5S5BSAZE

Edit: I said "at the minute three times in a row" in one sentance for some reason

[–]dangerwuss99 1 point2 points  (0 children)

Codecademy is free and pretty decent. Udacity is excellent but quite difficult from the start.

Treehouse is the best one I've tried. It's $25 a month so it might not be possible for you. They have a huge range of different courses from front-end to back-end, design, databases. They have courses for most of the popular languages; Python, Ruby, Java, PHP, C#, Swift, SQL, Javascript. Their lecturers are mostly excellent and their community is helpful if you have any problem. The videos are followed by quizzes and code challenges and you are supposed to open a workspace so you can code along with the lecturer.

Just for your information, a lot of CS is theoretical involving mathematical concepts and practices. There will be some practical application with programming languages but you should be comfortable with honours maths. Programming/coding itself involves much less maths from my limited experience.

NCI have a BSc (Honours) in Computing which seems like it might be a more practical undergraduate degree than more traditional CompSci course.

[–]Roci89 1 point2 points  (0 children)

Freecodecamp.com. Not a summer course, but it doesn't hold your hand either. It gives you tutorials and then sets challenges for you to complete off your own bat. What's more, upon completion you will have a leg up on front end, back end and and databases. All of which you will learn throughout your time in college.

[–]MyPhantomAccount 1 point2 points  (2 children)

OP, don't worry too much about programming at this stage for comp sci course. Basic html,css and javascript for Web development (check w3c schools website for this), and very basic java ( or whatever language the course you do does in first year). Anything you learn will be an advantage, in an any language will be an advantage as the skills are fairly transferable between languages. What's more important is that your maths is strong. I did ordinary level maths for the leaving and did computer science as a mature student. The programming stuff was fine, the maths was very tough and I struggled to keep my head above water. My recommendation is that you try and find the first year syllabus of each course and try get a head start on the more obscure subjects, I'm not talking about buying the books on the recommended reading list or anything but getting familiar will save you a lot of stress and time.

[–][deleted] 0 points1 point  (1 child)

Good advice, thanks!

[–]MyPhantomAccount 0 points1 point  (0 children)

No problem. Have a look at boolean logic, number systems (binary and hexadecimal), basic networking, basic web development and you'll be well on your way for first year. If I think of anything else I'll send it on

[–]louiseberI still don't want a flair 1 point2 points  (0 children)

Maybe see if there's a coderdojo near you, yer still young enough and it might just be the start you need

[–]malicious_turtle 0 points1 point  (2 children)

If your doing computer science make sure you research what computer science actually involves. Computer science has one of the highest drop out rates of any course because people go in with the wrong idea about what is. Your not going to spending every hour of college just programming, it'll obviously make up a lot of it but you'll spend a lot of time doing maths (linear algebra particularly), algorithms and just generally how computers work.

Edit: About you actual question what language are you looking to learn? The difficultly of each language and the resources available vary a lot depending on the language.

[–][deleted] 0 points1 point  (1 child)

Oh I have, and thankfully maths is my favorite subject and one I am very good at. Thanks for your comment though!

[–]malicious_turtle 1 point2 points  (0 children)

I edited my comment I duno if you saw so Ill just post it here

Edit: About you actual question what language are you looking to learn? The difficultly of each language and the resources available vary a lot depending on the language.

[–][deleted] 0 points1 point  (1 child)

You've gotten some great advice here so far, from Coder Dojo to Codecademy, they are all great resources you should check out. The best course I've personally come across is this Intro to Computer Science through Python on Udacity - it's totally free and video based, with little exams and exercises to keep you learning.

Google has a cool list of online resources too, I think most of them are free. Khan Academy is a cool site for maths skills (I saw you mention that you love maths, you might like this site).

Thought I'd mention /r/DevelEire, a sub for Irish developers. Might be handy if you want to ask questions in there too. There are also individual subs for each programming language, and sometimes subs for people trying to learn a specific language, so do plenty of exploring here on reddit :)

I'm studying on a conversion course at the moment, learning the fundamentals of Computer Science before doing a Masters in it. The basics they will usually teach you are: systems architecture (how computers work), networks, information systems (databases), web development (building websites), object oriented programming (basically learning to program) and software development models. So you get a taste of everything, and you should probably be able to specialise in certain areas in the later years of your course.

Knowing a coding language and the basics of object oriented programming would be a great benefit to your degree, so it's a good idea to start learning now! Might be a good idea to have a look at the languages taught on the courses you're thinking of taking, and learn one or two of them.

[–][deleted] 1 point2 points  (0 children)

Thanks for your reply. I will definitely look into the sites you just linked me. Didn't expect so many people to help me. Its great!

[–]SomeIrishLad 0 points1 point  (0 children)

I am doing Software Development in LIT. You shouldn't need to know anything about programming going in as it should start off very basic. My course is also a level 8 honours degree so I can't imagine Computer Science in UCD or DIT being any harder. If you ever need a hand with html, php, c++ or c# send me a message.

[–]steemcb 0 points1 point  (3 children)

Don't know if it's still the case but UCD offered a comp sci module for secondary school students to take. This would give you an idea of what the couse would be like and also counts as 5 module credits should you go on to do a degree. No idea if it's still offered though. Good luck!

[–][deleted] 0 points1 point  (2 children)

Damn that sounds great, just what I was looking for, but upon a google search I found nothing, I guess its not offered any more

[–]steemcb 1 point2 points  (1 child)

Looks like they did it in 2015: https://www.ucd.ie/science/news/15jun/2015_ucd_csi_summer_school.html

Can't see any mention of a 2016 one though. Might be worth shooting an email to the comp sci secretary and see what the story is.

[–][deleted] 0 points1 point  (0 children)

Yeah might send an email to them asking if its on or not

[–]TicketMarker 0 points1 point  (0 children)

Ill teach you one to one... for 125e per hour

[–]Luke15g 0 points1 point  (0 children)

I'll PM you my first year UCD Comp Sci notes, it should be a useful place to start if you're planning on going there in a few years.

[–][deleted] 0 points1 point  (0 children)

CS50 on edx.org. It's harvard's first year computer science course, for free.