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
Hi all! We have been experiencing an issue on site where threads have been missing the latest postings. The platform host Vanilla are working on this issue. A workaround that has been used by some is to navigate back from 1 to 10+ pages to re-sync the thread and this will then show the latest posts. Thanks, Mike.
Hi there,
There is an issue with role permissions that is being worked on at the moment.
If you are having trouble with access or permissions on regional forums please post here to get access: https://www.boards.ie/discussion/2058365403/you-do-not-have-permission-for-that#latest

Studying Computer Science if I have an interest in game development

  • 23-02-2021 3:32pm
    #1
    Registered Users, Registered Users 2 Posts: 73 ✭✭


    Hi there,

    I'm in my late twenties and I was thinking about going back to college to study Computer Science as a mature student as I have developed a great interest in game development, the Unity game engine and the C# programming language.

    However my impression is that Computer Science degrees in Ireland don't usually offer much if any modules on game development during the four years?

    I may be wrong but it seems that Java is the most common programming language that is focused upon through out the degree? I know that Java is related to C and C++ languages so there is some sort of a similarity between it and the programming language that is used in the Unity Game Engine.

    I'm not even sure why Java is such a popular language as I can't think of any applications that I use that were built with it. Windows, Photoshop, Google Chrome were all built using C++ I think. I remember reading somewhere that the old torrenting program Limewire was built using Java.

    I'm wondering if anyone could offer me advice on whether I would find it beneficial to do the four year degree based on what I've stated above? I was thinking of doing a CS degree in either UCC or somewhere in Dublin.

    Thanks!


«1

Comments

  • Registered Users, Registered Users 2 Posts: 1,704 ✭✭✭JoyPad


    Beyond a particular choice of programming language, a college degree would teach a whole lot of things in the Computer Science domain: algorithms, data structures, architecture, distributed systems, operating systems, functional programming.

    In fact, the choice of programming language could likely vary, depending on the faculty.

    You don't take a college degree to learn Java (or any other programming language). When you're done, you should have the knowledge to learn any programming language with relative ease, as you translate the concepts and the algorithms into the language you need.

    BTW, while most Windows applications are likely built with C++, the majority of the Internet is built with Java. The clouds at Google and Amazon are built with Java, for example. Maven Repository contains almost 20 million packages: re-usable pieces of code that you can easily grab and use when building a Java application.

    At the end of the day, languages are like tools. You should not aim to become a "Java developer" or "C# developer" or "NodeJS developer". You should be a "Software Developer", and languages will be like tools on your toolbelt.


  • Registered Users, Registered Users 2 Posts: 73 ✭✭dgallagher_73


    JoyPad wrote: »
    Beyond a particular choice of programming language, a college degree would teach a whole lot of things in the Computer Science domain: algorithms, data structures, architecture, distributed systems, operating systems, functional programming.

    In fact, the choice of programming language could likely vary, depending on the faculty.

    You don't take a college degree to learn Java (or any other programming language). When you're done, you should have the knowledge to learn any programming language with relative ease, as you translate the concepts and the algorithms into the language you need.

    BTW, while most Windows applications are likely built with C++, the majority of the Internet is built with Java. The clouds at Google and Amazon are built with Java, for example. Maven Repository contains almost 20 million packages: re-usable pieces of code that you can easily grab and use when building a Java application.

    At the end of the day, languages are like tools. You should not aim to become a "Java developer" or "C# developer" or "NodeJS developer". You should be a "Software Developer", and languages will be like tools on your toolbelt.
    Thanks for the helpful response.

    You say that "the majority of the Internet is built with Java. The clouds at Google and Amazon are built with Java".

    My basic understanding is that websites are built using HTML, CSS, PHP , Javascript or JQuery etc. Other than the examples you mentioned regarding the clouds of Amazon and Google being built with Java what are other websites etc that use Java?

    Can you specify what you mean by clouds in this context also? The only thing I know about clouds is cloud storage etc like Google Drive or OneDrive.


  • Registered Users, Registered Users 2 Posts: 1,704 ✭✭✭JoyPad


    Have a look at AWS. Click on Products and scroll down. Hover over every topic and look at the sub-topics in the second column.
    There are a whole lot more things there than storage.

    Google is the same.


  • Registered Users Posts: 63 ✭✭SilverSideUp


    I did a Masters in Comp. Sci. as a mature student. I had done some programming myself but I wanted to see what was the state of the art and what I was missing when writing my own programs. The course was a taught Masters and lasted 16 months. I have to say, I was disappointed, for two reasons.

    The first was that the material wasn't taught at all. You were given lots of assignments with tight deadlines. In this, Papa Musk is right. College really just gives you a badge of merit which says that you can complete the tasks set for the course, maybe even with distinction.

    The second reason is that much of the stuff they 'teach' is foundational stuff that you can easily teach yourself on the internet e.g. web development, intro. to java, intro. to python, relational databases. You don't need a college degree to learn that stuff.

    Really useful skills like Node.js, iOT, C, Cloud computing, were not offered. In addition, there was a heavy weighting towards data analysis, machine learning, etc. which is very sexy at the moment. Don't like data analysis? Tough.

    I reccomend you do your own projects. Build up your Github repos. Get experience programming for others if you can. Start your own business if you can. Or do it with a friend. Develop your tech interests. You'll get little time to do this on a degree course. Be careful if you do a 4 year Comp. Sci. degree as a mature student, because things move fast in the tech world.

    https://youtu.be/uLbi6jGsVEk


  • Registered Users, Registered Users 2 Posts: 3,636 ✭✭✭dotsman


    My basic understanding is that websites are built using HTML, CSS, PHP , Javascript or JQuery etc.

    Simple, basic websites are. Web Systems are typically built with Java (sometimes .NET). The HTML/CSS/JavaScript etc is simply the web presentation tier.

    But that is only the beginning. Have a smart phone? - a significant part of that will be written in Java. Moving to IoT? Java is a huge player in that world. You will find Java in everything from (smart) cars to Bluray players. In fact, here's a few mindblowing figures for you:
    • 15 billion devices run Java
    • There are 38 billion active JVMs
    • There are 21 billion cloud-connected JVMS
    And those figures are a few years old.

    But it's most common implementation is where you won't see it. The back-end of business systems.

    It's why you will see so many software engineering jobs (since the late 90's, and likely for the next few decades) requiring Java.

    Finally, a lot of newer, smaller languages/frameworks/tools are typically just extensions of, or inspired by Java.

    And all that is why universities tend to concentrate on it when teaching students about programming.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 73 ✭✭dgallagher_73


    I did a Masters in Comp. Sci. as a mature student. I had done some programming myself but I wanted to see what was the state of the art and what I was missing when writing my own programs. The course was a taught Masters and lasted 16 months. I have to say, I was disappointed, for two reasons.

    The first was that the material wasn't taught at all. You were given lots of assignments with tight deadlines. In this, Papa Musk is right. College really just gives you a badge of merit which says that you can complete the tasks set for the course, maybe even with distinction.

    The second reason is that much of the stuff they 'teach' is foundational stuff that you can easily teach yourself on the internet e.g. web development, intro. to java, intro. to python, relational databases. You don't need a college degree to learn that stuff.

    Really useful skills like Node.js, iOT, C, Cloud computing, were not offered. In addition, there was a heavy weighting towards data analysis, machine learning, etc. which is very sexy at the moment. Don't like data analysis? Tough.

    I reccomend you do your own projects. Build up your Github repos. Get experience programming for others if you can. Start your own business if you can. Or do it with a friend. Develop your tech interests. You'll get little time to do this on a degree course. Be careful if you do a 4 year Comp. Sci. degree as a mature student, because things move fast in the tech world.

    https://youtu.be/uLbi6jGsVEk
    Data analysis sounds really boring. I guess machine learning sounds reasonably interesting?
    May I ask what undergraduate degree you did before pursuing the masters in Computer Science? Was it related to computers in any way?

    I understand what you mean about how Elon Musk almost looks down on college degrees and prioritizes how good someone is at a particular skill but isn't the reality that regardless of how good you are at autodidatically teaching yourself these things on your own in order to get a job in the industry a degree(and probably a masters these days) is a prerequisite?

    Although I understand how important it is to do your own projects in your spare time I doubt you can apply for a software development job in a company based soley on how impressive the projects on your Github account is without a degree?


  • Registered Users, Registered Users 2 Posts: 73 ✭✭dgallagher_73


    dotsman wrote: »
    Simple, basic websites are. Web Systems are typically built with Java (sometimes .NET). The HTML/CSS/JavaScript etc is simply the web presentation tier.

    But that is only the beginning. Have a smart phone? - a significant part of that will be written in Java. Moving to IoT? Java is a huge player in that world. You will find Java in everything from (smart) cars to Bluray players. In fact, here's a few mindblowing figures for you:
    • 15 billion devices run Java
    • There are 38 billion active JVMs
    • There are 21 billion cloud-connected JVMS
    And those figures are a few years old.

    But it's most common implementation is where you won't see it. The back-end of business systems.

    It's why you will see so many software engineering jobs (since the late 90's, and likely for the next few decades) requiring Java.

    Finally, a lot of newer, smaller languages/frameworks/tools are typically just extensions of, or inspired by Java.

    And all that is why universities tend to concentrate on it when teaching students about programming.
    Okay I have better understanding why universities focus on teaching Java.

    Can you give me an example of a web system? I looked it up online and it doesn't really give me a simple answer? Is Gmail an example of a web based system?
    Can you give me an real world example of a back-end business sytem that would use Java? Would Revenue.ie be an example?

    Is the main reason why Java is used so prominently over C++ because it can more easily run on different platforms? Is that the whole point of the language?


  • Registered Users, Registered Users 2 Posts: 9,159 ✭✭✭Royale with Cheese


    I wouldn't focus so much on what language they use to teach you, the core concepts of pretty much all object oriented programming languages are the same. I used java for nearly all my modules in university, after I graduated I took a generic grad role with a tech consultancy and they put me straight onto a .net project. I've now been a .Net developer for ten years.

    What makes someone an experienced developer in a certain platform (.net in my case) is experience and knowledge of the frameworks, design patterns and tools that go along with creating, deploying and running an application from end to end. You'll touch on pretty much none of those in university unless the courses have seriously improved since I did mine.


  • Registered Users Posts: 63 ✭✭SilverSideUp


    Data analysis sounds really boring. I guess machine learning sounds reasonably interesting?
    May I ask what undergraduate degree you did before pursuing the masters in Computer Science? Was it related to computers in any way?

    I understand what you mean about how Elon Musk almost looks down on college degrees and prioritizes how good someone is at a particular skill but isn't the reality that regardless of how good you are at autodidatically teaching yourself these things on your own in order to get a job in the industry a degree(and probably a masters these days) is a prerequisite?

    Although I understand how important it is to do your own projects in your spare time I doubt you can apply for a software development job in a company based soley on how impressive the projects on your Github account is without a degree?

    My undergraduate degree was completely unrelated to computers. Microsoft Word was, and still is, considered cutting edge in the industry I came from.

    If your goal is to get a job then of course a degree is going to help you for those positions that require a Comp. Science degree. It'll get you past HR. But your question was, should you do a Comp. Science degree?

    My answer is that you can also make your way in the industry if you can show and communicate to others an aptitude and passion for software development and demonstrate it in your work portfolio.

    Tech is not like medicine, law or veterinary where you are regulated and have to see practice. The field is wide open, completely un-regulated, and all the resources you need are waiting for you on the web.


  • Registered Users, Registered Users 2 Posts: 3,636 ✭✭✭dotsman


    Okay I have better understanding why universities focus on teaching Java.

    Can you give me an example of a web system? I looked it up online and it doesn't really give me a simple answer? Is Gmail an example of a web based system?
    Can you give me an real world example of a back-end business sytem that would use Java? Would Revenue.ie be an example?

    Is the main reason why Java is used so prominently over C++ because it can more easily run on different platforms? Is that the whole point of the language?
    Not very familiar with the internals of revenue.ie, but I would imagine that revenue.ie in itself is simply a website (managed by a CMS), while the MyAccount/ROS etc would be web systems. All the systems that Revenue staff themselves use would be web systems. For any company - their payroll/accounting/HR etc systems are all, well, Systems!

    It's not so much that their is a back-end system, but a back-end tier (or multiple tiers) that do all the business logic/process/data manipulation etc. The front-end tier is simply the presentation.

    There are many reasons to use Java over C++ and vice versa. The biggest reason is always down to the tools that people are familiar with. C++ is from the 1970's so many types of applications that have been around since then continue to use use C++ (standalone applications, OS applications and games for example). Java was introduced in the 90's and exploded around the start of the millennium and many new system types introduced since then (web systems/mobile/IoT etc) typically use Java.

    It's a lot more complex than this. To understand all this is just one of the many reasons to study CS (or related degree) in college ;)


  • Advertisement
  • Registered Users Posts: 63 ✭✭SilverSideUp


    dotsman wrote: »
    Not very familiar with the internals of revenue.ie, but I would imagine that revenue.ie in itself is simply a website (managed by a CMS), while the MyAccount/ROS etc would be web systems. All the systems that Revenue staff themselves use would be web systems. For any company - their payroll/accounting/HR etc systems are all, well, Systems!

    It's not so much that their is a back-end system, but a back-end tier (or multiple tiers) that do all the business logic/process/data manipulation etc. The front-end tier is simply the presentation.

    There are many reasons to use Java over C++ and vice versa. The biggest reason is always down to the tools that people are familiar with. C++ is from the 1970's so many types of applications that have been around since then continue to use use C++ (standalone applications, OS applications and games for example). Java was introduced in the 90's and exploded around the start of the millennium and many new system types introduced since then (web systems/mobile/IoT etc) typically use Java.

    It's a lot more complex than this. To understand all this is just one of the many reasons to study CS (or related degree) in college ;)

    C++ began in 1985


  • Registered Users, Registered Users 2 Posts: 3,636 ✭✭✭dotsman


    C++ began in 1985

    Well, to be pedantic, it "began" in the late '70s as "C with classes" (a fork of C which had been created at the start of the '70's and become very popular), went through several iterations and become known as C++ in 1982 and the first book on it was finally published in '85 (i.e. triggering widespread adoption). Fun fact :)


  • Registered Users Posts: 17 CodeApples


    All valid points so far. I went back and did BSc in CS after a lifetime of commercial web and software development. I have to say I wish i had done it sooner. You do get out what you put in and it is more of a badge of merit than the best use of your educational time. Back story: I was spending 20 hrs a week if not more doing Coursera, Udemy, Pluralsight courses that all gave me knowledge but not paperwork of value to go with it. So i figured, do the time in an institution and get the letters. I'm still working through it, now on my masters though that has moved into leadership and innovation.

    Anyway CS degree is vey worthwhile in my opinion. I interviewed a guy once who had just finished his CS degree and his main project was a Unity driving game that used ML to learn to drive the car around the track. He showed us a video of it, sped up, as the car learned from crashing to near perfect navigation of the track. Now if you understand machine learning, you know that is actually quite rudimentary but putting it all together I thought was very impressive. Did he go out and get a job developing games, probably not. Why, well for a start he was interviewing for a back-end java role straight out of college and all he wanted to do was develop games. So i guess its not all roses on the job front.

    So now the tricky part and possibly not what you want to hear. Becoming a game developer is a passion that must be pursued with some realistic expectations of how you are going to struggle. Sure you have some big game companies in Ireland, Riot Games is one that comes to mind, but go have a look on jobs sites and just think about what your end goal is. Because if you are happy to go the DIY route, there are some cracking courses you could do online that would obliterate anything you will learn in college for the same amount of time.

    Final point. Some of the technologies others discussed like distributed systems design are absolutely relevant to gaming at scale, if you want to get into any of the big gaming companies with multiplayer online games. Lastly a quick google found this https://www.ul.ie/courses/bachelor-science-computer-games-development so other option is do a CS course with a gaming specialisation. Good luck and well done for making the leap back into education!!


  • Registered Users, Registered Users 2 Posts: 17,646 ✭✭✭✭Mr. CooL ICE


    Can you give me an example of a web system? I looked it up online and it doesn't really give me a simple answer? Is Gmail an example of a web based system?
    Can you give me an real world example of a back-end business sytem that would use Java? Would Revenue.ie be an example?

    I'm not answering for the poster you quoted, but I'll give you my interpretation of what he means by 'web systems': a combination of client and server side systems, which could be categorised under frontend vs backend development.

    To take something like boards as a simple example; HTML, CSS and javascript would be used to generate the pages you view in your browser and handle the basic interactions, such as clicking links or the "Submit Reply" button. Once you do something like open a thread to view posts, post a reply, or anything that involves getting/posting information from/to boards, then the boards server will handle that.

    (I don't know the exact tech that boards uses so I'm going to make some assumptions about how it is built here)

    Boards would not be built in using HTML/CSS/javascript*. Boards would be built using something like Java or C#. When a user, like yourself, clicks on a thread to view posts, you will be sending what is known as a "request" to the boards server. The boards server will interpret this request by retrieving the posts in the thread you asked to view from the server database, transform the post information into a response and send it back to your browser. When the browser retrieves this information, it will then go back to using HTML/CSS/javascript to create a view for you to be able to read this information.

    tl;dr: frontend development includes showing information on screen and sending requests to a server asking for information and interpreting the response, whereas backend development interprets requests from a client, generating that information and sending it back to the client as a response.

    I mainly work with C# working on web systems, as would be described above. I haven't spent any time on game tutorials in a long, long time. I can only assume that if I started now, my knowledge from working on web systems would have very little transfer over to game dev. It might, but I highly doubt it.

    If game development is your primary interest and motivation to get into programming in general, then use a tool you like, like Unity, and stick with it. There are game dev courses out there, but a more general comp science course wouldn't help you with your aim IMO.



    *node.js is the exception here


  • Registered Users, Registered Users 2 Posts: 6,523 ✭✭✭daymobrew


    You could investigate two Game Development releated courses in Cork:
    https://courses.cit.ie/index.cfm/page/module/moduleId/12996
    https://www.stjohnscollege.ie/courses-2/information-technology/computer-game-design-development/
    Both appear to be short committments compared to a degree course.


  • Registered Users, Registered Users 2 Posts: 73 ✭✭dgallagher_73


    I wouldn't focus so much on what language they use to teach you, the core concepts of pretty much all object oriented programming languages are the same. I used java for nearly all my modules in university, after I graduated I took a generic grad role with a tech consultancy and they put me straight onto a .net project. I've now been a .Net developer for ten years.

    What makes someone an experienced developer in a certain platform (.net in my case) is experience and knowledge of the frameworks, design patterns and tools that go along with creating, deploying and running an application from end to end. You'll touch on pretty much none of those in university unless the courses have seriously improved since I did mine.
    Can I ask what does working in .net actually entail? What do you work on all day? Is it back-end stuff?


  • Registered Users, Registered Users 2 Posts: 4,277 ✭✭✭km991148


    I won't go into one specific technology over another and the merits (perceived or otherwise) of a degree as others are going there, but, as was barely touched upon- why games development specifically?

    Do you currently build games as a hobby or is there something specifically interesting about the industry.

    My impression about games industry is there are a lot of people wanting in and the salaries aren't as good as business programming. But that's just an impression. Either way depending on your reasons for wanting in, it may not be the career you think it is?


  • Registered Users, Registered Users 2 Posts: 73 ✭✭dgallagher_73


    My undergraduate degree was completely unrelated to computers. Microsoft Word was, and still is, considered cutting edge in the industry I came from.

    If your goal is to get a job then of course a degree is going to help you for those positions that require a Comp. Science degree. It'll get you past HR. But your question was, should you do a Comp. Science degree?

    My answer is that you can also make your way in the industry if you can show and communicate to others an aptitude and passion for software development and demonstrate it in your work portfolio.

    Tech is not like medicine, law or veterinary where you are regulated and have to see practice. The field is wide open, completely un-regulated, and all the resources you need are waiting for you on the web.
    Out of curiosity may I ask what kind of undergraduate degree did you do before pursuing the masters in CS?


  • Registered Users, Registered Users 2 Posts: 73 ✭✭dgallagher_73


    km991148 wrote: »
    I won't go into one specific technology over another and the merits (perceived or otherwise) of a degree as others are going there, but, as was barely touched upon- why games development specifically?



    My impression about games industry is there are a lot of people wanting in and the salaries aren't as good as business programming. But that's just an impression. Either way depending on your reasons for wanting in, it may not be the career you think it is?



    Yes I've been learning about building games over the last couple of years by following Youtube tutorials online etc. I've spent many hours teaching myself how make a 2D platformer game. I was inspired by the people who made Cuphead, Fez, Hollow Knight and made Celeste.

    They all started out as small teams that used Unity as their game engine(except the people that made Celeste and Fez). I do hope to make my own game at some stage and I had hoped to start a game studio. I'm more interested in setting up my own studio to make games rather than work as an employee for a game studio or to work as a business programmer.

    However the reality is that there are way more business programmer jobs than game jobs especially in Ireland. My overwhelming impression is that jobs in game development are precarious and not well paid. I really don't think there are many jobs in videogames in Ireland.

    I thought that perhaps if I did the CS degree and worked as a back end developer or something for a while I could spend my free time on the game and possibly get to a point were I could set up my own studio to make modest indie games that would be profitable for a small team of people? I'm definitely not saying I could make as good of a game as Cuphead or anything. I'm not deluded. But I thought I could make decent games that people would buy nonetheless.

    You see I'm getting older and older and it might be wise to go back and do a degree that is sort of related to video games but is sensible at the same time. That's why I thought doing CS would be a good thing to do at this stage of my life.


  • Registered Users, Registered Users 2 Posts: 4,277 ✭✭✭km991148


    Yes I've been learning about building games over the last couple of years by following Youtube tutorials online etc. I've spent many hours teaching myself how make a 2D platformer game. I was inspired by the people who made Cuphead, Fez, Hollow Knight and made Celeste.

    They all started out as small teams that used Unity as their game engine(except the people that made Celeste and Fez). I do hope to make my own game at some stage and I had hoped to start a game studio. I'm more interested in setting up my own studio to make games rather than work as an employee for a game studio or to work as a business programmer.

    However the reality is that there are way more business programmer jobs than game jobs especially in Ireland. My overwhelming impression is that jobs in game development are precarious and not well paid. I really don't think there are many jobs in videogames in Ireland.

    I thought that perhaps if I did the CS degree and worked as a back end developer or something for a while I could spend my free time on the game and possibly get to a point were I could set up my own studio to make modest indie games that would be profitable for a small team of people? You see I'm getting oldere and older and it might be wise to go back and do a degree that is sort of related to video games but is sensible at the same time. That's why I thought doing CS would be a good thing to do at this stage of my life.

    Yeah if you are enjoying the games as a hobby, keep it as an enjoyment. Find something else to enjoy in business programming. Might be web Frameworks like react or angular, DB programming, services work, designing business layers that make sense. There are many, many different roles and technologies out there, good luck!


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 73 ✭✭dgallagher_73


    km991148 wrote: »
    Yeah if you are enjoying the games as a hobby, keep it as an enjoyment. Find something else to enjoy in business programming. Might be web Frameworks like react or angular, DB programming, services work, designing business layers that make sense. There are many, many different roles and technologies out there, good luck!
    Can I ask what kind of work do you do that is related to Computer Science? How do you find it?


  • Registered Users, Registered Users 2 Posts: 9,159 ✭✭✭Royale with Cheese


    Can I ask what does working in .net actually entail? What do you work on all day? Is it back-end stuff?

    I've spent ten years mainly working on generic web based applications for large companies, mostly internal systems but the odd customer facing site. The C# programming part is for the back end web server, this is the part that a Java developer would write in Java or a node.js developer would write in JavaScript.

    I'd have largely avoided front end development earlier on in my career and called myself a backend developer but it's getting harder to get away with that these days, you're expected to develop full stack. There is a specific .net technology for creating the front end part of a web app but modern applications have moved away from that now really towards the big JavaScript front end frameworks. So you'd have a React/Angular or maybe Vue.js front end application written in JavaScript talking to a .Net web server.


  • Registered Users, Registered Users 2 Posts: 4,277 ✭✭✭km991148


    Can I ask what kind of work do you do that is related to Computer Science? How do you find it?

    I've seen it all at this stage :-D

    As a career choice it's good, with lots of diversity. Different technologies, different business domains, different areas of expertise (you might find you like something visual like front end work, or you like getting deep into scalability problems on the back end). These are generalisations as each area has overlap (there is always a number of good choices Vs many bad choices when building software).

    Initially it's a case of building skills, learning the mechanics of your given stack, changing if you don't like it. Over time tho you should be looking to build up an engineering mindset. As you gain experience you will learn what solutions fit well with what (business and technical) problems and know when to use them.

    Additionally you should also improve your project management skills (of which there are various methodologies). Similarly as time goes on you will (should!) get better at estimating and knowing what's best. Often the engineering mindset kicks in and it's more about finding compromises that allow you to deliver what meets requirements Vs budget Vs not building a steaming pile of crap.


  • Registered Users, Registered Users 2 Posts: 73 ✭✭dgallagher_73


    km991148 wrote: »
    I've seen it all at this stage :-D

    As a career choice it's good, with lots of diversity. Different technologies, different business domains, different areas of expertise (you might find you like something visual like front end work, or you like getting deep into scalability problems on the back end). These are generalisations as each area has overlap (there is always a number of good choices Vs many bad choices when building software).

    Initially it's a case of building skills, learning the mechanics of your given stack, changing if you don't like it. Over time tho you should be looking to build up an engineering mindset. As you gain experience you will learn what solutions fit well with what (business and technical) problems and know when to use them.

    Additionally you should also improve your project management skills (of which there are various methodologies). Similarly as time goes on you will (should!) get better at estimating and knowing what's best. Often the engineering mindset kicks in and it's more about finding compromises that allow you to deliver what meets requirements Vs budget Vs not building a steaming pile of crap.
    Was it easy enough to find work after your finished your degree? Do you work very long hours? I know these days it's normal for people to work 8 to 6 but I wonder are there times where you're are working until midnight because of a deadline?


  • Registered Users, Registered Users 2 Posts: 4,277 ✭✭✭km991148


    Was it easy enough to find work after your finished your degree? Do you work very long hours? I know these days it's normal for people to work 8 to 6 but I wonder are there times where you're are working until midnight because of a deadline?

    It's hard to say for you. Like, we are about to hit a recession, we don't know how bad it will be. Generally for me I've had no issues finding work.
    Working hours vary a lot by company. Usually the smaller or younger the company, the more you end up working. But for every company with dreadful hours, there is another that promotes good work life balance.


  • Registered Users, Registered Users 2 Posts: 73 ✭✭dgallagher_73


    km991148 wrote: »
    It's hard to say for you. Like, we are about to hit a recession, we don't know how bad it will be. Generally for me I've had no issues finding work.
    Working hours vary a lot by company. Usually the smaller or younger the company, the more you end up working. But for every company with dreadful hours, there is another that promotes good work life balance.
    I understand. It's just that if I want to work on my videogame project after I finish work I wonder how realistic it would be for me to do so? I might be too exhausted.


  • Registered Users, Registered Users 2 Posts: 4,277 ✭✭✭km991148


    I understand. It's just that if I want to work on my videogame project after I finish work I wonder how realistic it would be for me to do so? I might be too exhausted.

    It's impossible to tell really, but if you find yourself in that position where you are too tired for hobbies then I would recommend anyone change jobs as that's a one way ticket to burn out and exhaustion.

    Same if you end up spending too much time coding into the small hours and having to get up for work.

    I guess it depends what you want? Are you happy treatment home development as a hobby and fur fun/mental stimulation/learning or do you have major plans to take over the gaming world?

    By the time you graduate you might not even care! Or you might find you can't do without and will want to work full time in it, only you can know but I would say it's unlikely that you will be working ALL the time and every day you will be too tired.

    More than likely you will get some long hours as deadlines approach etc


  • Closed Accounts Posts: 22,648 ✭✭✭✭beauf


    I understand. It's just that if I want to work on my videogame project after I finish work I wonder how realistic it would be for me to do so? I might be too exhausted.

    Don't worry about things that haven't happened yet.


  • Advertisement
  • Closed Accounts Posts: 22,648 ✭✭✭✭beauf


    If think its very easy to get deflected into compromising your end goals because you have to take what is available now.
    Its also entirely to turn a hobby you love into a job you hate. Its very rare that someone's job is a labour of love.

    There is no right or wrong here. Everyone's path is different. Personally if I was do anything differently it would be to compromise and take "plan B" less often than I did.


  • Registered Users, Registered Users 2 Posts: 7,878 ✭✭✭The_B_Man


    Do you have a degree already?
    If so, you might get away with doing a 1 or 2 year conversion course.
    Or if you're any good at software, you might be able to skip 1st year. You'd have to talk to the admissions office or the Head of IT.

    I've met, and seen the code of, people who self-taught programming. They saw themselves as good but tbh they were atrocious. Genuinely horrible code.

    College will at least teach you the fundamentals and give you structure. Basically your code will be better and you'll have the piece of paper to get passed the HR drone. You'll also meet other like-minded people and may even find a business partner.

    But 4 years is a long time. If you can convince someone to hire you without a degree then go for that. Once you're in the door, your experience becomes more important than your college degree, in my opinion. You learn so much in your first year or two. But the hard part is getting hired. This is really all the degree is for. But you can bypass it with a good github, although it'll be difficult and more risky, as a lack of degree will always be a black mark against you when hiring managers are trying to eliminate potential new hires.


  • Registered Users, Registered Users 2 Posts: 73 ✭✭dgallagher_73


    The_B_Man wrote: »
    Do you have a degree already?
    If so, you might get away with doing a 1 or 2 year conversion course.
    Or if you're any good at software, you might be able to skip 1st year. You'd have to talk to the admissions office or the Head of IT.

    I've met, and seen the code of, people who self-taught programming. They saw themselves as good but tbh they were atrocious. Genuinely horrible code.

    College will at least teach you the fundamentals and give you structure. Basically your code will be better and you'll have the piece of paper to get passed the HR drone. You'll also meet other like-minded people and may even find a business partner.

    But 4 years is a long time. If you can convince someone to hire you without a degree then go for that. Once you're in the door, your experience becomes more important than your college degree, in my opinion. You learn so much in your first year or two. But the hard part is getting hired. This is really all the degree is for. But you can bypass it with a good github, although it'll be difficult and more risky, as a lack of degree will always be a black mark against you when hiring managers are trying to eliminate potential new hires.
    I do not have a degree. I was in college before but I had to drop out for personal reasons.

    Can I ask do Computer Science graduates find jobs after they graduate with relative ease compared to other fields? Like, a lot of my friends who did degrees in different fields HAD to get a masters afterwards just to get a foot in the door at a company...

    I've always wondered would it be the same in my case in that I would find that I'd need to get some sort of post-grad qualification just to get a foot in the door in a company?


  • Registered Users, Registered Users 2 Posts: 3,636 ✭✭✭dotsman


    I do not have a degree. I was in college before but I had to drop out for personal reasons.

    Can I ask do Computer Science graduates find jobs after they graduate with relative ease compared to other fields? Like, a lot of my friends who did degrees in different fields HAD to get a masters afterwards just to get a foot in the door at a company...

    I've always wondered would it be the same in my case in that I would find that I'd need to get some sort of post-grad qualification just to get a foot in the door in a company?

    If you're good, you have your pick of grad positions.

    Basically, there are lots of grads, and lots of openings. The grads from the best degree courses, with the best results and a visible passion for tech will have offers pouring in to them. A mediocre result from a "less renowned" college will result in far fewer interviews, and not being able to show a passion for tech and learning tech will result in far fewer offers from said interviews.


  • Registered Users, Registered Users 2 Posts: 73 ✭✭dgallagher_73


    dotsman wrote: »
    If you're good, you have your pick of grad positions.

    Basically, there are lots of grads, and lots of openings. The grads from the best degree courses, with the best results and a visible passion for tech will have offers pouring in to them. A mediocre result from a "less renowned" college will result in far fewer interviews, and not being able to show a passion for tech and learning tech will result in far fewer offers from said interviews.
    Okay I understand.

    May I ask would you consider University College Cork be considered a "less renowned" college or a decent college?


  • Registered Users, Registered Users 2 Posts: 3,636 ✭✭✭dotsman


    Okay I understand.

    May I ask would you consider University College Cork be considered a "less renowned" college or a decent college?

    UCC would definitely be one of the top ones.


  • Advertisement
  • Moderators, Society & Culture Moderators Posts: 15,778 Mod ✭✭✭✭smacl


    Long term developer myself, starting in my early teens and programming full time from '85, mostly C++ in recent years FWIW. As others have said, I think the CS degree would be very useful, though more for the algorithms, maths, data structures and techniques than the programming. I did a four year evening course at Kevin Street to get my MBCS many moons ago. The programming was pretty elementary but the maths and associated algorithms were excellent. If you're picking a course with the intent of getting into gaming, I'd strongly advise finding one with the modules your potential employers are looking for. For programming this would most likely include C++ and GPU programming and optimization including GPU Compute for the engine side, client side could well be Java or C# particularly for mobile games. You'd certainly also need 3d geometry and physics from a maths, algorithms and data structures point of view. Not particularly CS, but gaming companies also use a lot of 3d model building software such as Blender, Rhino and 3dMax, so these are tools worth learning. On the GPU programming side, being handy with Vulkan development would get you in the door in many games dev shops.

    Regards why C++ is still in use, the following discussion over on StackOverflow is a bit old but still very relevant. Games development is often about getting the maximum computational performance out of a given piece of hardware, particularly so on the console side of things. If you have a look on the PC building forum you'll see numerous threads on overclocking and buying high end GPUs to achieve this. On the developer side, C++, GPU (Vulkan, CUDA, HLSL etc..), C and assembler have the potential the achieve better performance than other languages. Writing big programs in assembler is painfully slow and impractical. C is a subset of C++ without the many advantages, so few enough reasons to use it outside of embedded systems. C++ is also the language of a huge number of SDKs including most of the major game engines.

    With respect to focussing on game development, I'd say if that's your passion then go for it. Yes, the money and conditions might be worse, but being stuck in a development job that you don't enjoy could be much worse still. My own job entails a lot of 3d graphics work and I love it. I was involved in commercial development work at one point and it left me cold, to the extent I wasn't actually that good at it. There are some great indigenous gaming houses here that are hiring, e.g. Warducks. Well worth looking at them to see what skills they're after. You could also do worse than contact people on LinkedIn, tell them what you're hoping to achieve, and ask for some advise from those in the know. You'd be surprised how many people a really helpful when approached honestly in this way.


  • Registered Users, Registered Users 2 Posts: 73 ✭✭dgallagher_73


    JoyPad wrote: »
    Have a look at AWS. Click on Products and scroll down. Hover over every topic and look at the sub-topics in the second column.
    There are a whole lot more things there than storage.

    Google is the same.
    Apologies if I'm a bit slow but what exactly is AWS? It seems to act as a library of different tools for people but I don't understand what these things have to do with cloud computing?

    Could you provide a simple example of an average person using one of the libraries in the AWS and their reason for doing so? I don't really understand what it is...


  • Registered Users, Registered Users 2 Posts: 6,236 ✭✭✭Idleater


    Apologies if I'm a bit slow but what exactly is AWS?...

    Step 1 of computer science: google it.

    Computer science and programming is a lot of searching for existing solutions and adapting to suit your particular needs. With experience you are searching through your own previous experiences as well as others.

    Regarding game development, how is your maths? You might find that a requirement for game development.


  • Registered Users, Registered Users 2 Posts: 73 ✭✭dgallagher_73


    dotsman wrote: »
    Not very familiar with the internals of revenue.ie, but I would imagine that revenue.ie in itself is simply a website (managed by a CMS), while the MyAccount/ROS etc would be web systems. All the systems that Revenue staff themselves use would be web systems. For any company - their payroll/accounting/HR etc systems are all, well, Systems!

    It's not so much that their is a back-end system, but a back-end tier (or multiple tiers) that do all the business logic/process/data manipulation etc. The front-end tier is simply the presentation.

    There are many reasons to use Java over C++ and vice versa. The biggest reason is always down to the tools that people are familiar with. C++ is from the 1970's so many types of applications that have been around since then continue to use use C++ (standalone applications, OS applications and games for example). Java was introduced in the 90's and exploded around the start of the millennium and many new system types introduced since then (web systems/mobile/IoT etc) typically use Java.

    It's a lot more complex than this. To understand all this is just one of the many reasons to study CS (or related degree) in college ;)
    When you say that Revenue staff would be using web systems are you talking about desktop apps on their desktop(similar to Limewire, Photoshop etc) that they would use to interact with an online database? Or are you talking about a kind of website that they would log into that allows them to carry out tasks that interact with a SQL database?


    Can you give me a simple example of a back-end tier that does all the business logic/process/data manipulation etc"? What do you mean by "back-end tier"? Is a back-end tier a conduit between the SQL database and the front-tier?


  • Registered Users, Registered Users 2 Posts: 73 ✭✭dgallagher_73


    Idleater wrote: »
    Step 1 of computer science: google it.

    Computer science and programming is a lot of searching for existing solutions and adapting to suit your particular needs. With experience you are searching through your own previous experiences as well as others.

    Regarding game development, how is your maths? You might find that a requirement for game development.
    Well I've been focusing on 2D platformer games and not 3D games at the moment and so far the maths part hasn't been too difficult. Detecting the slope of a ground is done using simple geometry like Pythagoras's theorem. Something that 13 year olds learn.

    I assume there's way more difficult mathematical stuff in 3D games but I'm sure I can handle it. I'm just learning simple 2D platformer stuff at the moment. Stuff you would see in Celeste, Hollow Knight and Cuphead. I don't believe there's a huge amount of maths involved in those games.

    I wasn't being complacent/lazy - I had already Googled AMS as soon as that poster mentioned it but I still don't have a good understanding why people would use these things? Or why there is a demand for them? It seems to be a service whereby companies use pre-built functions from the AMS library to use for something that they would need to do business-wise?

    Is AMS used because it can be more convenient for a company to pay for these services on a monthly basis than to build a particular function for their back-end system from scratch in-house? Is that it? I looked at the list products that the original poster directed me to and I was a bit overwhelmed.

    It would be good if someone could give me a simple to understand example of a company using this service?


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 73 ✭✭dgallagher_73


    I did a Masters in Comp. Sci. as a mature student. I had done some programming myself but I wanted to see what was the state of the art and what I was missing when writing my own programs. The course was a taught Masters and lasted 16 months. I have to say, I was disappointed, for two reasons.

    The first was that the material wasn't taught at all. You were given lots of assignments with tight deadlines. In this, Papa Musk is right. College really just gives you a badge of merit which says that you can complete the tasks set for the course, maybe even with distinction.

    The second reason is that much of the stuff they 'teach' is foundational stuff that you can easily teach yourself on the internet e.g. web development, intro. to java, intro. to python, relational databases. You don't need a college degree to learn that stuff.

    Really useful skills like Node.js, iOT, C, Cloud computing, were not offered. In addition, there was a heavy weighting towards data analysis, machine learning, etc. which is very sexy at the moment. Don't like data analysis? Tough.

    I reccomend you do your own projects. Build up your Github repos. Get experience programming for others if you can. Start your own business if you can. Or do it with a friend. Develop your tech interests. You'll get little time to do this on a degree course. Be careful if you do a 4 year Comp. Sci. degree as a mature student, because things move fast in the tech world.

    https://youtu.be/uLbi6jGsVEk
    My understand that if I was to do Computer Science in UCC I would do an internship in third year. If I was to do a HDip I don't think they really do internships?

    I know a HDip and Undergraduate degree in Computer Science are both Level 8 but wouldn't a prospective employer value the fact I had done an internship in a company that had something to do with the field as opposed to the short HDip course?


  • Registered Users, Registered Users 2 Posts: 6,236 ✭✭✭Idleater


    Sound, you are certainly on the right track then.

    If you are focused on game development then some aspects of CS might not be of interest (like aws).

    A good way of thinking about cloud computing: it's just someone else's computer.

    University courses are good for giving you a guided learning experience about how to approach technology in general. Work experience gives you insight into one slice of what can be done with technology.

    I think I got a lot from college, but now 20 odd years later it's diluted significantly in terms of what I use day to day. I'd still recommend some guided learning, if you have the discipline for self learning, great, otherwise college.


  • Registered Users, Registered Users 2 Posts: 73 ✭✭dgallagher_73


    Idleater wrote: »
    Sound, you are certainly on the right track then.

    If you are focused on game development then some aspects of CS might not be of interest (like aws).

    A good way of thinking about cloud computing: it's just someone else's computer.

    University courses are good for giving you a guided learning experience about how to approach technology in general. Work experience gives you insight into one slice of what can be done with technology.

    I think I got a lot from college, but now 20 odd years later it's diluted significantly in terms of what I use day to day. I'd still recommend some guided learning, if you have the discipline for self learning, great, otherwise college.
    I definitely do have the discipline for self-learning.


    I understand that there is a significant amount of autodidactic learning involved in Computer Science in general because things in the field change so quickly but at the end of the day I need at least an undergrad degree to get my foot in the door with a company...


  • Registered Users, Registered Users 2 Posts: 73 ✭✭dgallagher_73


    CodeApples wrote: »
    All valid points so far. I went back and did BSc in CS after a lifetime of commercial web and software development. I have to say I wish i had done it sooner. You do get out what you put in and it is more of a badge of merit than the best use of your educational time. Back story: I was spending 20 hrs a week if not more doing Coursera, Udemy, Pluralsight courses that all gave me knowledge but not paperwork of value to go with it. So i figured, do the time in an institution and get the letters. I'm still working through it, now on my masters though that has moved into leadership and innovation.

    Anyway CS degree is vey worthwhile in my opinion. I interviewed a guy once who had just finished his CS degree and his main project was a Unity driving game that used ML to learn to drive the car around the track. He showed us a video of it, sped up, as the car learned from crashing to near perfect navigation of the track. Now if you understand machine learning, you know that is actually quite rudimentary but putting it all together I thought was very impressive. Did he go out and get a job developing games, probably not. Why, well for a start he was interviewing for a back-end java role straight out of college and all he wanted to do was develop games. So i guess its not all roses on the job front.

    So now the tricky part and possibly not what you want to hear. Becoming a game developer is a passion that must be pursued with some realistic expectations of how you are going to struggle. Sure you have some big game companies in Ireland, Riot Games is one that comes to mind, but go have a look on jobs sites and just think about what your end goal is. Because if you are happy to go the DIY route, there are some cracking courses you could do online that would obliterate anything you will learn in college for the same amount of time.

    Final point. Some of the technologies others discussed like distributed systems design are absolutely relevant to gaming at scale, if you want to get into any of the big gaming companies with multiplayer online games. Lastly a quick google found this https://www.ul.ie/courses/bachelor-science-computer-games-development so other option is do a CS course with a gaming specialisation. Good luck and well done for making the leap back into education!!
    Thanks for the helpful advice.

    If I'm to be perfectly honest, I'm actually hoping to make my own game in Unity. I wanted to make a modest but enjoyable 2D game. I've been practicing Unity for the last couple of years to eventually do this.

    The kind of game I would be making would be something people would buy for maybe 10 to 15 Euros on Steam. I've studied the kind of games I would be competing with that have been successful and I feel I can do just as good if I work hard enough. I'm just trying to finish a prototype currently.

    However I'm reaching my 30's at the moment and I feel I should do something sensible like go back and do a degree like I should have back when I was 18. The degree I chose to do back then was a horrible choice and I dropped out.
    I thought if I went back and did Computer Science I would be learning things that would be helping my project but at the same time preparing myself for the future when it comes to getting a stable job. At least I would be spending hours every week studying things in the degree though not explicitly related to making a game can still be beneficial to me in the long run.


  • Moderators, Sports Moderators, Regional Abroad Moderators Posts: 2,655 Mod ✭✭✭✭TrueDub


    If all you want to do is get the skills to design and develop your own game, then concentrate on that, focus your learning path and don't worry about the degree.

    However, if you're interested in becoming a developer, the degree will be of enormous benefit. Some of the questions you've asked in this thread are the exact stuff you'll cover in a degree (application tiers, concepts of computing, cloud architecture & tooling).

    Also, the algorithm and mathematics side of things will really assist you, along with exposing you to other sides of computing and development, which might spark an interest in another area that could lead to a career you'd like.


  • Registered Users Posts: 98 ✭✭haskellgeek


    AWS is mostly used for the company I work for as its scalable, you can roll out out a new instance fairly easily, costly but easy, we also use it for data storage. We'd use amazon servers to try gaurntee uptimes which are client specifications. Even in game development you'll need to learn how to interact with a AWS server I'd imagine.


  • Moderators, Business & Finance Moderators Posts: 10,431 Mod ✭✭✭✭Jim2007


    Okay I have better understanding why universities focus on teaching Java.

    Can you give me an example of a web system? I looked it up online and it doesn't really give me a simple answer? Is Gmail an example of a web based system?
    Can you give me an real world example of a back-end business sytem that would use Java? Would Revenue.ie be an example?

    Is the main reason why Java is used so prominently over C++ because it can more easily run on different platforms? Is that the whole point of the language?


    This preoccupation with a language, Java in this case, is clouding your judgement. At the end of the day, very few are going to care about the language used, it's the ability to engineer an application that can be put into production, be used by thousands of users while behaving in stable and maintainable state.



    You would not take your car to a mechanic who only owned a hammer, nor will an employer take on a software engineer who's skills are limited to a single language or similar technology.



    Universities do not focus on teaching Java, they teach the principles of software engineering, using Java as the language. In the past they have used: Basic, C/C++, Smalltalk, Pascal and some I've even forgotten. The language is not important, it's the principles they teach that are.


    Good programmers learn about five programming languages and with every knew language they discover things that improve their engineering skills. For instance I used to use JSON and XML for program configuration, after a couple of years writing Ruby, I switched to YAML, because I found people who need to make changes to configurations make fewer errors in editing YAML files. And so.


    As for systems written in Java etc... The reality is that any complex business application you interact with today over the internet or in the office is not written in a single language.



    Businesses spend millions of developing an application and then go on to put in maybe ten years of effort to iron out all the bugs, stabilize it and get it all working correctly. Business will not just toss that aside when it comes to the web, they will simple write some kind of an interface that allows them to continue using that application in the back end of their web application. So you can expect that there are millions of lines of code written in the traditional langues of Cobol, C, C++, Pascal etc...


    You cannot expect to build any large scale multi-user online game without exposure to the tools and techniques we use to build such environments.


    To be really good, you need to broaden your exposure dramatically from where you are now. A degree is one way, you will have to decide.


  • Registered Users, Registered Users 2 Posts: 17,646 ✭✭✭✭Mr. CooL ICE


    You want an example of why a company would use something like AWS/Azure? Here an example that I've worked on that sprung to mind.

    An educational institution whose website had the usual education tools; e-lecture streaming, resource downloads etc. Instead of hosting their own internal, they used AWS. Using AWS, they were able to separate the services responsible for streaming content and hosting large files for download. Without utilising either of these, their ISP would have charged more for the traffic used for streaming and downloading than AWS did when set up correctly.

    Also, come exam results time, they were able to scale up the website when thousands of students were checking their results online. This means that with a few mouse clicks, the website went from being hosted on a dual core 4gb server to an 8-core 32gb server for the first few hours of exam results being online, then back down again once the server demand receded, with no site downtime on the public end. AWS would charge X amount for the light server and Y amount for for the heavy server, so it made business sense to only scale up when needed.

    Another example would be hosting test environments. Every company larger than a few people would have some sort of a test environment, including a test server. A small company might have a small internal test server for QA purposes. The initial cost of setup and being turned on 24/7 for one year might be less than the cost of an AWS server being turned on 24/7. However, you can simply turn on the AWS hosted server for 9-6 Mon-Fri and have it switched off for out of office hours, which would result in less cost than hosting internally.


  • Moderators, Business & Finance Moderators Posts: 10,431 Mod ✭✭✭✭Jim2007


    If you just want examples of cloud computing....


    At one stage I worked for a small Swiss company, about 20 employees, that provided a service to investment funds and their agents - the calculation of commissions due and payable on the distribution of the funds.


    It's sounds simple, until you understand that there are about 2,000 different ways of doing the calculation, terabytes and terabytes of data, about 5,000 funds vendors and almost 10,000,000 agents. Oh and it all needs to be done within the first 24 hours of the new quarter.


    So on the first day of the quarter, we'd spin up between 8,000 and 10,000 machines at data centers around the world. Theses machines would import the data, transform the data, do the calculations and eventually produce an excel spreadsheet for each vendor containing a list of agent account numbers and the amount due to each.

    For the DevOps it was 24 hours of hell followed by almost three months of nothing....


  • Registered Users, Registered Users 2 Posts: 2,598 ✭✭✭Saint_Mel


    AIT ... soon to be TU have a CS degree with Games Development

    https://www.ait.ie/courses/BSc-Hons-in-Software-Design-Virtual-Reality-Gaming


  • Advertisement
Advertisement