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

Studying Computer Science if I have an interest in game development

Options
2

Comments

  • Registered Users Posts: 7,859 ✭✭✭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 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 Posts: 3,635 ✭✭✭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 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 Posts: 3,635 ✭✭✭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,716 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 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 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 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 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 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 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 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 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,638 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,000 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 Posts: 17,501 ✭✭✭✭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,000 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 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
  • Registered Users Posts: 73 ✭✭dgallagher_73


    Jim2007 wrote: »
    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....
    When you say "the calculation of commissions due and payable on the distribution of the funds" are you talking about the commissions that are due to investors when they have made a profit?


    What are "fund vendors" and what do you mean by "agents"? Are fund vendors the same thing as investors?

    Can you elaborate what you mean by "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." What do you mean by "spin up"?

    Also how do you communicate with the data center's from your end? Is it through the AWS service?


  • Registered Users Posts: 73 ✭✭dgallagher_73


    Saint_Mel wrote: »
    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
    Cheers for that.


  • Registered Users Posts: 859 ✭✭✭OwenM


    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.

    Java has peaked but there will be lots of work in it for a decade or two yet. It is too heavy and microservices that require just 40-50 lines of code in node or python need multiples of this in java. Java's demise began with the move away from monolith architecture to microservices.

    Your smartphone's OS was written in C or deriviates, Android aps were written in Java but now in Kotlin, PHP does handle some complex websites too, including this one and Drupal/wordpress are frameworks that have many many users but I wouldn't touch PHP personally. Node.js is worth looking at and is getting a lot of commercial adoption. Python is also valuable as a utility language and for data science. Go or Rust are also interesting. Academia needs to realise Java has had it's day but it will probably take a decade or more.

    If I was going back to college this is what I would be doing: https://www.software-engineering.ie/


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


    When you say "the calculation of commissions due and payable on the distribution of the funds" are you talking about the commissions that are due to investors when they have made a profit?


    Nope not at all. When you buy funds from an advisor, a bank or other financial institution the owner of the fund will pay some kind of commission or reward to the advisor/Bank/etc..


    I'm talking about those fees.


    Can you elaborate what you mean by "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." What do you mean by "spin up"?


    Start the machines up and get them processing the data


    Also how do you communicate with the data center's from your end? Is it through the AWS service?


    They are run on AWS and like most organizations the actually environments are designed, programmed and build the company's 20 or so employees, not AWS.



    AWS is primarily an infrastructure provider. What happens on their environments is almost always the responsibility of the company making use of the infrastructure.


    For instance my son is involved in running one of the big gaming fan sites with commercial sponsorship. There is about 20 people involved and they have servers in several locations around the world so that they can deliver content in a timely manor, have recovery possibilities should something crash, denial of service attach, manage security etc.... When new games are released it is not unusually for them to have 50k concurrent users, so their environment has to be very stable.



    He is 21 now and just finishing is degree in CS. But he originally started working on this when he was 13, so he has a lot more experience in how to do this stuff than I have - he is my go to guy, when I need help actually.


    There are lots of free courses on AWS/Google etc.. take some of them and learn a bit about what it means to run stuff on a large scale.


  • Registered Users Posts: 3,635 ✭✭✭dotsman


    OwenM wrote: »
    Java has peaked but there will be lots of work in it for a decade or two yet. It is too heavy and microservices that require just 40-50 lines of code in node or python need multiples of this in java. Java's demise began with the move away from monolith architecture to microservices.

    Your smartphone's OS was written in C or deriviates, Android aps were written in Java but now in Kotlin, PHP does handle some complex websites too, including this one and Drupal/wordpress are frameworks that have many many users but I wouldn't touch PHP personally. Node.js is worth looking at and is getting a lot of commercial adoption. Python is also valuable as a utility language and for data science. Go or Rust are also interesting. Academia needs to realise Java has had it's day but it will probably take a decade or more.

    If I was going back to college this is what I would be doing: https://www.software-engineering.ie/

    I assume you have heard of Spring-boot? It has been gaining significant adoption at an enterprise level over the past few years, and is the main language/framework of choice that I see being used for micro services in large companies.

    I really don't see the "too heavy". With spring-boot, a few lines for the controller, generate the encapsulated model, jdbc-template/orm/nosql the persistence layer, leaving me just writing the business logic in to the services layer. Doesn't come any lighter than that.

    To be honest, I spend more time writing the unit tests/mocks than I do the code, but that is just good engineering ;)

    Just to give you an example, I just googled "Microservices languages" and chose the first 3 results (not exactly scientific, but will give you an idea....)

    https://www.clariontech.com/blog/5-best-technologies-to-build-microservices-architecture

    Java is the 1st mentioned of the "5 best"

    https://rubygarage.org/blog/top-languages-for-microservices

    Again, Java in the "Top 5". Interestingly, it has a table describing how Java is used in more companies than the other 4 combined!

    https://blog.bitsrc.io/best-languages-for-microservices-fc721f10d8a0
    Java named first in "top 3".


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


    dotsman wrote: »
    I really don't see the "too heavy". With spring-boot, a few lines for the controller, generate the encapsulated model, jdbc-template/orm/nosql the persistence layer, leaving me just writing the business logic in to the services layer. Doesn't come any lighter than that.

    I agree - it's my go-to for any sort of microservice, which i can have up & running in a matter of minutes, allowing me to evolve the service very quickly.
    dotsman wrote: »
    To be honest, I spend more time writing the unit tests/mocks than I do the code, but that is just good engineering ;)

    Hallelujah and Amen! :D


  • Registered Users Posts: 73 ✭✭dgallagher_73


    I have another question about going back to do Computer Science as a mature student that I hoped someone could kindly help me with?

    I'll be close to my 40's by the time I finish the degree if I go back the year after next and now I'm a bit worried about my employment prospects afterwards. I remember hearing someone on Liveline years ago complaining how he completed his CS degree in his 40's just to realize that companies avoid hiring those in that age group. He described how devastated he was when discovering this post-graduation.

    Am I right to be worried about this? I thought a prospective employer would value the life experience that a 40 year old CS graduate could bring to the table but maybe I'm wrong to think this?


  • Registered Users Posts: 98 ✭✭haskellgeek


    We hired a couple of older people older than typical graduates > 30 say as pretty junior devs we might be the exption not sure we are struggling for devs though, functional programming is pretty niche. Depends on you though if you can show a good git project with the chosen language most people would look past age


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


    Am I right to be worried about this? I thought a prospective employer would value the life experience that a 40 year old CS graduate could bring to the table but maybe I'm wrong to think this?

    It is very difficult to say. If you are seeking employment rather than a contracting gig, I'd say it will depend a lot on what the 'life experience' actually is. If you have worked a professional level in you current job and are joining a company in the same sector but in the IT side, then you have something useful to bring to the table.

    I retired at 54, but I go back every so often on a 3 month basis to do some consulting/contracting. But at this stage no one wants me for my technical skills, they want me for my business knowledge and my ability to marry the two disciplines.

    In fact the last gig I did about 12 months ago, they did not care if I only wrote VBA macros nor if I ever wrote a single line of code. I was there to give the client peace of mind, that there was at lease one person involved that had a track record in this area and to teach the 'kids' what it means to write production code that needs to stay up 24x7. So I spent a lot of time talking to people about how to write software, rather than writing anything.

    I think the question you need to answer, is how will you feel if you give up on your dream. There are two unpleasant possibilities in the mix: you do nothing and always regret it or you do you best and fall short which is the lesser of the two evils for you.


  • Advertisement
  • Registered Users Posts: 859 ✭✭✭OwenM


    dotsman wrote: »
    I assume you have heard of Spring-boot? It has been gaining significant adoption at an enterprise level over the past few years, and is the main language/framework of choice that I see being used for micro services in large companies.

    I really don't see the "too heavy". With spring-boot, a few lines for the controller, generate the encapsulated model, jdbc-template/orm/nosql the persistence layer, leaving me just writing the business logic in to the services layer. Doesn't come any lighter than that.

    To be honest, I spend more time writing the unit tests/mocks than I do the code, but that is just good engineering ;)

    Just to give you an example, I just googled "Microservices languages" and chose the first 3 results (not exactly scientific, but will give you an idea....)

    https://www.clariontech.com/blog/5-best-technologies-to-build-microservices-architecture

    Java is the 1st mentioned of the "5 best"

    https://rubygarage.org/blog/top-languages-for-microservices

    Again, Java in the "Top 5". Interestingly, it has a table describing how Java is used in more companies than the other 4 combined!

    https://blog.bitsrc.io/best-languages-for-microservices-fc721f10d8a0
    Java named first in "top 3".

    I didn't mean Java was finished and I've used Spring-boot in the past, it's a great tool for microservices and prototyping. The 'heavy' aspect is the resource usage, each node in your k8's cluster will have it's own jvm. A microservice written in node will have a smaller foot print because the runtime is smaller, cheaper to run and use less electricity in whatever datacentre it is actually hosted.

    New business's or startups using node will have a competitive advantage over the same business using Java. If you sign a contract with a consultancy for a new project it is most likely to be a Java implementation or use frameworks that use it, if you hire a new development team and allow them to innovate it most likely won't.


Advertisement