Not enjoying the course and really want to downgrade to a lower ranking University? Watch

john9321
Badges: 4
Rep:
?
#1
Report Thread starter 1 year ago
#1
Hello

I am studying Computer Science BSc in a Russel group University. I kinda made a huge mistake considering i wasted 2 years in here. I do struggle a lot in managing my time, resits 1/2 modules in first and second year also.I do find the course is very challenging and i am not the type of student that go to the library and revise each day. In here we have literally 3-6 hours lab,lectures tutorial on mon,tue,wed,thur,fri , while some other university only have it on 2 or 3 days ..

I got 2:1 in first year and 3rd in second year. I do not plan to go onto next year because i know for sure i will failed it. To be honest, at the start of year 2 i did thought about changing university because i felt it was very boring and i kinda lost all my motivation in the course, my attendance was pretty low as well because i didn't enjoy studying lot of theory and maths, but i still carry on.

Why my grading very low? because i am not interested in the modules at all. There is just too many theory and mathematics modules and all of it was core modules. There isn't a option to choose what you like or elective modules like many lower ranking University.

My only mistakes is that i didn't research all the modules in full detailed before i started University 2 years ago. I really regret it and i even wasted 2 years of tuition fees from this. I just started researching recently on several Universities and guess what ? i am stunned and surprised by how the modules there fits better for me and i really wish i did went to those university. But i didn't because my parent wanted me to go to a higher ranking and the University was local as well so i didn't' need to worry about accommodation.

Should i move from a University that is top 20 in ranking to a university that is 60-80th place in the UK? The entry requirement is BCC/BBC/BBB which is the Uni that i am looking for. I hate to say this but it's like actually downgrading myself because simply i am not smart enough i guess.

I am still enrolled for the 3rd year , would it be wise to transfer to other university at this month because pretty much all university already started their first week. And i think i can get into most lower ranking University into the Second year and i don't mind wasting another year because i know for sure i will enjoy there and actually do modules that i like.

Also let's say if i do manage to get a 3rd class or 2:2 in here , would it be worth it? or should i transfer to a lower ranking university and actually find modules that i enjoy and get a 1st class there? Would employer prefer to look for 2:2/3rd class in Russel group or 1st in a lower ranking university (in 60-80th uk ranking)?
0
reply
winterscoming
Badges: 19
Rep:
?
#2
Report 1 year ago
#2
Employers do not care whatsoever about the university you attended - the crucially important thing that employers do care about are the skills you posess at the point at which they interview you. Hopefully there'll be skills you'll have picked up at university despite your results, but that also includes anything you've taught yourself. Just as importantly, as any past experience you have applying those skills to significant projects and/or using them in a commercial environment. That would often include the FYP and your industrial placement year, or any internships you may have been involved with, or even if you've spent time working on an open-source project or other significant projects in your spare time

it's generally the case in most IT careers that employers do not have any particular preference for graduates with a strong academic or mathematical background. At best, the mathematical background tends to fit with cutting-edge areas such as Machine Learning and AI (these are real "computer science" jobs), or game development. Otherwise, the academic/mathematical background is simply a "nice to have".

Most employers are focused on their need for people who are capable of turning into IT professionals who can meet their needs; they have no particular need for computer scientists or mathematicians, so they are simply looking for enthusiastic problem-solvers who posess strong technical skills, capable of learning and understanding new technologies, and being able to dive into any kind of technical problem to gain a thorough understanding of that problem, and to be able to create a solution.

A 1st from a low-ranked university does indeed look better than a 3rd from a top university because it represents your understanding of the subject, and the fact that you've been able to complete your FYP to the highest standard.

You might be underestimating the difficulty and amount of effort required to pick up a 1st - this isn't easy to do at any university regardless of its place in the rankings; it doesn't matter that the university is ranked 60 places lower, you'll still need to put many hundreds of hours of your own time into the FYP in order to achieve a 1st. (Also, entering the other university at the 2nd year instead would be a good idea anyway because your current 2nd year grade will make it even harder to achieve a 1st)

Your final-year project at any university will need to hit a fairly high bar in order to pick up the grade you need, and realistically you're going to need to do a lot of work in the final year to do that; Also, don't assume that a low-ranked university is going to be a "mickey mouse" course where you can pick up a 1st just by turning up for lectures; There'll still be a lot to learn, and it'll still be entirely down to how much effort you're really willing to put in to coursework, assignments and self-directed study - the thing which should make it much easier is studying things you're interested in so that it doesn't feel like a chore.

Usually the main difference between 'top 20' CompSci courses and those in the mid-rankings tend to be that lower-ranked universities have very little academic content, and usually don't have much research going on - they're often geared up to teach vocational skills; often in partnership with employers - so the content of your course and your assignments are likely to more closely resemble the hands-on skills you'd need for a job such as Software engineering, Network engineering, etc. Some of those universities despite their ranking also have some very good industrial placement opportunities due to their close links with employers - it generally turns out that the 12-month placement provides a huge boost to your future employment prospects; often the experience and skills picked up during a 12-month industrial placement ends up being more valuable than the degree itself.

Being on a course you enjoy is really important; you're more likely to be motivated to succeed if you find the content interesting; "forcing" yourself to learn a module that you dislike is always extremely difficult. If you're struggling with a course you're not enjoying or finding too difficult, then transferring to a course which better matches you is a good idea - if picking a different course based on your interests improves your chances at reaching a 1st or 2:1 then it's worth doing. I'd also highly recommend (if possible) putting yourself into a position where you can get onto a 12-month industrial placment because that puts you in a very strong position by the time you graduate.

Personally, I studied at Staffs, which I believe is ranked somewhere around 60-70 - I chose that university based on its industry connections rather than its ranking. The course (Software Engineering) had very little academic content - it focused heavily on programming (I used my optional modules to earn a CCNA from their Cisco academy along the way), then entered the industrial placment after my 2nd year, and didn't return for the final year because the placement on its own put me where I wanted to be.
1
reply
john9321
Badges: 4
Rep:
?
#3
Report Thread starter 1 year ago
#3
@winterscoming great information, i do think employer generally look at degree 2:1 or higher since most job require them rather than the actually University and list of module? Like in russel group you have lot of theory modules that is completely useless for modern job unless you are going for PHD or research. I rather do a course that have more programming modules than that

I do think ranking matter in some case, i know it would be much easier to get a 1st in a lower ranking than in a Russel group university. When i check other lower ranking university, modules are like 4-5 while in here are 8-10 each year. Also year 1 , 2 ,3 is pretty much 100% coursework. While in here are 100% exam or only 20% coursework at it minimum for each modules. And some modules here are strict i have to get 50% in order to pass , even with 48% i had to resit because it was too low for certain module. While in lower ranking university you can get away with it or even carry on with just 1 or 2 modules that didn't pass , so it's definitely much easier . The amount of commitment in Russel group is really not for me , like literally i don't have free time at all and i thought university would be more free than A-level but it's 10x more workload and i kinda jealous of my friend who went to polytech univeristy that is 60th place and only have to attend 2 out of 5 days , so he basically have 3 days free which is really unfair to be honest.

let say for example, teeside or hull , i could possibly get into 3rd year because my first year modules cover their 1st+2nd year pretty much everything even if my 2nd year result is bad . And i heard most university accept 2:1 for second year transfer, just from 1st year result. So i will try contacting them on monday , not sure if i should repeat second year in another Univeristy that are 60-80 place but i could possibly try 3rd year transfer in 90-110 places.

I am quite surprised at lower ranking Univeristy , like they don't even have AI modules, Maths (calculus,discrete maths,etc) or even data structure and algorithm.
let say this for example : http://www.leedstrinity.ac.uk/course...se-information
1,2,3 years are 100% coursework. It's looks very easy for me when i looked in detail of the course , like i know for sure i can get a 1st without a doubt. But is a 1st from these University really help a lot??
0
reply
yt7777
Badges: 18
Rep:
?
#4
Report 1 year ago
#4
(Original post by john9321)
I am quite surprised at lower ranking Univeristy , like they don't even have AI modules, Maths (calculus,discrete maths,etc) or even data structure and algorithm.
let say this for example : http://www.leedstrinity.ac.uk/course...se-information
1,2,3 years are 100% coursework. It's looks very easy for me when i looked in detail of the course , like i know for sure i can get a 1st without a doubt. But is a 1st from these University really help a lot??
You'll find this, especially with computing/CS courses, at lower universities you need to be careful you are joining a good programme. There are so many bad standard computing degrees, mostly offered at lower universities. Generally, the technical modules wont be that in depth and these kinds of courses will have little to no maths content what so ever, which I don't understand how it's possible for a CS degree. I really can't understand how that course you linked from Leeds Trinity can be classed as Computer Science:facepalm:and there are loads more like this so be aware.

Most employers seem to not care where you went to university (which i find absolutely ridiculous) but if you care about what you're studying then i recommend sticking with a better university you'll study more stimulating topics and in lots more depth too, if you want to coast through and get an easy top grade to boost your chances of getting a grad job then it's not a bad choice. But for me personally, I preferred studying at a higher level and sacrificing getting a top grade and I'm so glad I made that choice because my insurance choice was my local university (ranked around 60th) and its absolutely poor for computer science as lots of my friends from home went there, I chose to go to a top 25 uni and a top 10 uni for my BSc and MSc respectively in computer science and it was by far the better choice, albeit getting a lower grade than I could have at a worse university.
0
reply
Qup
Badges: 14
Rep:
?
#5
Report 1 year ago
#5
OP, if all they are teaching you is theoretical stuff and nothing practical, then you are in big trouble. Knowing the theory is good, but unless you know how to apply it in any relevant way, you are kind of just wasting your time and money. If possible, it might be better for you to attempt a CS course that allows you to be more practical and actually develop some skills. If that is being offered at a lower rank uni. assuming that you can go for that uni conveniently, do so.

(Original post by yt7777)
Most employers seem to not care where you went to university (which i find absolutely ridiculous).
I am lost as to why you find this ridiculous. Employers want money, no? Because they are running a business, no? Because they need to satisfy investors and put food on the table, no? So long as you have the skills and all the relevant procedural information committed to memory, wouldn't it be wise for them to not care about which uni you went to?
0
reply
winterscoming
Badges: 19
Rep:
?
#6
Report 1 year ago
#6
It all depends really - what kind of career are you looking for at the end? If you're looking to get into a career in something like Software Engineering, Networking or DevOps then as long as your time at university had been spent picking up the skills you need for the job, then the ranking of the university you studied at will be irrelevant. Employers don't want to hire academics into those roles, they want to hire people who are capable of doing the job, so your technical skills and your experience in putting those skills to use is really all that matters.

Studying at a "top 20" Russell Group university does not give you any kind of special advantage in a job interview compared with someone who has never even been to university; it's 100% down to your skills, experience and your plain ability to get the job done. The interviewers are generally the senior engineers and technical leaders at a company whose priority is finding somebody who is capable of delivering a working system, solving technical problems, understands technology and able to learn by themselves, and able to cope with the demands of the job

Without knowing anything about that Leeds trinity course you've linked to aside from the description on the website, it looks fine as an introduction to Software Engineering - I wouldn't call it a Computer Science degree however - perhaps it's the title of the course which is misleading. There are a lot of businesses hiring DevOps/Software Engineers who are interested in people with a background in those kinds of skills however.

Maths and Data Structures aren't relevant to most IT jobs. If you're working in something like DevOps or Software Engineering then you'll most likely never need to do anything mathematical beyond basic arithmetic. You'll most likely never need to write any kind of well-known algorithm because you'll be using 3rd-party libraries in a language like C#, Java, Python or JavaScript which takes care of those kinds of concerns, or you'll be working predominantly with data stored in a database.

AI is a cutting-edge field; there are businesses whose interests growing into it, but ultimately you don't need any knowledge of AI to work in an environment which is dominated by cloud computing, web technologies, database technologies, and mobile technologies. AI is nice-to-know, but employers are more interested in graduates who have the fundamentals of things like automated testing, coding standards, software design best-practices, debugging, build/deployment, problem solving, web service development, configuration management, object-oriented-programming, some UI/web design, some understanding of windows/*nix, etc. Having a solid foundation in those skills will get you plenty of interviews and job offers even if you've never been to university.
0
reply
yt7777
Badges: 18
Rep:
?
#7
Report 1 year ago
#7
(Original post by Qup)
I am lost as to why you find this ridiculous. Employers want money, no? Because they are running a business, no? Because they need to satisfy investors and put food on the table, no? So long as you have the skills and all the relevant procedural information committed to memory, wouldn't it be wise for them to not care about which uni you went to?
Because learning to use a selection of tools shouldn't comprise of a whole degree. Tools and languages come and go all of the time, the theory and the underpinning concepts dont, thats why the best computer science degrees will give focus to maths/discrete maths, algorithms, data structures and underlying theory like the OP mentioned.

Learning the concepts that underpin the tools give you the skills to apply yourself to picking up any given tool or language and understand it quickly and these are skills that stick with you for life.

I work as a Software Engineer and I am able to join any particular project even if I am not fully familiar with the technology being used because I have the ability to pick up the tools/languages that I need quickly I don't have to be limited to using a particular tool-set which might become outdated in a few years. This is not saying that I totally disagree with practical degree programmes, i studied several practical modules on my degree, mostly in programming and software engineering. But this cant comprise of a full degree, these tools will become outdated (some already have and I only graduated just over a year ago) its the maths and the underpinning theory which holds ground, having a full degree which is all practical and learning to use tools is detrimental and not sustainable.
0
reply
winterscoming
Badges: 19
Rep:
?
#8
Report 1 year ago
#8
(Original post by yt7777)
Because learning to use a selection of tools shouldn't comprise of a whole degree. Tools and languages come and go all of the time, the theory and the underpinning concepts dont, thats why the best computer science degrees will give focus to maths/discrete maths, algorithms, data structures and underlying theory like the OP mentioned.
I agree that a degree isn't really the best way to learn them, but we're generally talking about a career which doesn't require a background in any of the things you mentioned.

Jobs such as Software Engineering, DevOps, QA Testing and Network Engineering really don't need an understanding in Discrete Maths, Algorithms, Data Structures and computer science theory. They aren't relevant in 2018, and they won't be relevant in 2050 either. The tools are relevant, except the underlying concepts for those are completely different.

For example, the concepts which underpin tools such as Selenium, SpecFlow and Cucumber are all about technical risk management and software quality - those are the underpinning concepts which someone needs to learn - although realistically, it's better to learn about those concepts when working on the job, rather than trying to study it from an academic point of view.


(Original post by yt7777)
Learning the concepts that underpin the tools give you the skills to apply yourself to picking up any given tool or language and understand it quickly and these are skills that stick with you for life.
Except those concepts related to Maths and algorithms do not help anybody learn how to use new tools. A computer science graduate with a 1st from Oxbridge of Imperial will not have any easier time trying to learn something like Amazon Web Services for the first time compared with someone who simply taught themselves to code in their bedroom.

The only thing I've found which really makes these tools easier to learn is having a background in actively using similar tools before, and being able to relate the need for those tools, and the ways of using those tools to a 'new' way of doing things. For example, knowing how to use RabbitMQ makes it pretty easy to figure out how to use most other eventing tools because the concept of a message broker, message routing, queues, and publish/subscribe are pretty much universal -- I'd never really encountered them before touching RabbitMQ about 5 years ago, but now I see the concept cropping up all over the place.


(Original post by yt7777)
I work as a Software Engineer and I am able to join any particular project even if I am not fully familiar with the technology being used because I have the ability to pick up the tools/languages that I need quickly I don't have to be limited to using a particular tool-set which might become outdated in a few years. This is not saying that I totally disagree with practical degree programmes, i studied several practical modules on my degree, mostly in programming and software engineering. But this cant comprise of a full degree, these tools will become outdated (some already have and I only graduated just over a year ago) its the maths and the underpinning theory which holds ground, having a full degree which is all practical and learning to use tools is detrimental and not sustainable.
This is an interesting point of view; which tools do you feel are easier to understand from having a computer science background? As someone who is entirely self-taught I have never particularly noticed any difference between myself and someone who has a degree from a top university doing exactly the same job for a similar period of time (around 10 years or so).

I tend to take the time to sit down with the tool, install it, read the documentation, do some research on the internet, find examples, tutorials, maybe some online courses if any are available, and just keep trying to chip away at it until it does what I need it to do and I understand it. What does a person with a degree do any differently?
0
reply
yt7777
Badges: 18
Rep:
?
#9
Report 1 year ago
#9
(Original post by winterscoming)
I agree that a degree isn't really the best way to learn them, but we're generally talking about a career which doesn't require a background in any of the things you mentioned.

Jobs such as Software Engineering, DevOps, QA Testing and Network Engineering really don't need an understanding in Discrete Maths, Algorithms, Data Structures and computer science theory. They aren't relevant in 2018, and they won't be relevant in 2050 either. The tools are relevant, except the underlying concepts for those are completely different.

For example, the concepts which underpin tools such as Selenium, SpecFlow and Cucumber are all about technical risk management and software quality - those are the underpinning concepts which someone needs to learn - although realistically, it's better to learn about those concepts when working on the job, rather than trying to study it from an academic point of view.
This also depends on what type of company/industry you work in. For example, working in an R&D company as a Software Engineer doing more scientific/proof of concept type work at a lower level is a totally different type of software engineering to working for a company building mobile apps. This is an example of where having a strong/academic computer science background can prove vital.

Yes, learning tools is good for the short-term but eventually those tools will be redundant and the time, effort and expense of studying for a degree purely made up of learning tools could be worthless in 5 years time.

This is why the best computer science degrees teach the raw concepts and have heavy maths content, these problem solving skills stay with you for life and are what maintain the value of your investment in going to university.

(Original post by winterscoming)
Except those concepts related to Maths and algorithms do not help anybody learn how to use new tools. A computer science graduate with a 1st from Oxbridge of Imperial will not have any easier time trying to learn something like Amazon Web Services for the first time compared with someone who simply taught themselves to code in their bedroom.
AWS, what about scalability and concurrency for opimizing resources in your infrastructure to optimize performance and cost?

Naively, someone new to AWS could build out a system vertically not understanding the power of parallel execution and concurrency because they do not think about breaking down a problem and are unable to work out how to solve it in parallel - one of the biggest benefits of cloud computing. Not having this understanding which could result in higher operating costs and reduced performance (this is just one example). Obviously, hosting a static website on S3 is easy and anyone can do that. But building an optimized cloud based system requires much higher problem solving abilities.

^Just an example that came to mind

(Original post by winterscoming)
This is an interesting point of view; which tools do you feel are easier to understand from having a computer science background? As someone who is entirely self-taught I have never particularly noticed any difference between myself and someone who has a degree from a top university.
Firstly a simple example, I'm sure you'll be familiar with the relation between SQL and Relational Algebra and Set Theory? These two topics which were taught in one of my discrete mathematics modules in my first year (and feature in most other computer science maths modules), they essentially capture and underpin all you need to know to work out any SQL.

Similarly, taking a module in machine learning which was quite theoretical and 'mathsy' but helped me when learning about practical data analytics, for example, If you're familiar with IBM's SPSS Modeller? Building out streams, albeit using a drag and drop GUI tool, but having the knowledge of the types of analysis/modelling methods from an academic perspective influences making the correct decisions which can affect the quality and accuracy of your prediction models. This also applies when using similar tools or a library/IDSL in whatever programming language, knowing the theory allows you to make informed choices when applying it through using tools.

Bit of a more loose example is cryptography, everything I learnt about crypto on my degree was incredibly theoretical and maths heavy but learning this theory and drilling crypto properties down to gain understanding at a lower level, makes me more informed when making choices of crypto libraries and whats most appropriate for my problem.

More generally, studying topics like algorithms and data structures have probably the closest association to programming, for example, say you're searching through a list of data, obviously you'd use some form of library or IDSL, but how do you know which algorithm will complete your task most efficiently e.g. based on your data, should you use a linear search or a binary search? - just a simple example. But also, if you are ever working on something unique and you develop your own algorithm for a specific purpose, would you know how to conduct your own analysis? could you build the same feature more efficiently and optimise the complexity through other means?
0
reply
Sidian
Badges: 4
Rep:
?
#10
Report 1 year ago
#10
@winterscoming What do you think big tech companies like Google, Facebook etc will think of someone having gone to a lower ranked university? Do you think going to such a uni will torpedo your career if you have high ambitions for that sort of thing? Do you feel limited currently? What do you do?

I'm thinking of applying to UWE - https://courses.uwe.ac.uk/G400/computer-science - not sure how that compares to the one that other guy linked.
0
reply
winterscoming
Badges: 19
Rep:
?
#11
Report 1 year ago
#11
(Original post by yt7777)
This also depends on what type of company/industry you work in. For example, working in an R&D company as a Software Engineer doing more scientific/proof of concept type work at a lower level is a totally different type of software engineering to working for a company building mobile apps. This is an example of where having a strong/academic computer science background can prove vital.
Yes, these are rather different - most businesses aren't tech firms like Google or Amazon however - their projects tend to involve solving business problems rather than investing in cutting-edge R&D.


(Original post by yt7777)
Yes, learning tools is good for the short-term but eventually those tools will be redundant and the time, effort and expense of studying for a degree purely made up of learning tools could be worthless in 5 years time.
Any degree is worthless in 5 years time. By learning the tools you'll also have the concepts behind those tools - again using RabbitMQ or AWS as an example - all it takes is spending a bit of time implementing these into a project, and then any other similar tools are much easier to pick up. For example, transferring skills between AWS/Azure is pretty easy.

(Original post by yt7777)
This is why the best computer science degrees teach the raw concepts and have heavy maths content, these problem solving skills stay with you for life and are what maintain the value of your investment in going to university.
You also learn those exact same problem solving skills by just doing the job. The point is that there's nothing particularly that University can teach you about general software engineering that you wouldn't learn by working as a software engineer.


(Original post by yt7777)
AWS, what about scalability and concurrency for opimizing resources in your infrastructure to optimize performance and cost?
That's generally covered in the AWS documentation and plenty of AWS courses. Why does someone need to go to university to learn about that? Simply having experience of implementing a system using AWS will get you to exactly the same place without going to university.


(Original post by yt7777)
Naively, someone new to AWS could build out a system vertically not understanding the power of parallel execution and concurrency because they do not think about breaking down a problem and are unable to work out how to solve it in parallel - one of the biggest benefits of cloud computing. Not having this understanding which could result in higher operating costs and reduced performance (this is just one example). Obviously, hosting a static website on S3 is easy and anyone can do that. But building an optimized cloud based system requires much higher problem solving abilities.
Problem solving abilities that someone with enough experience working in software will naturally have. Again, going to university has no particular benefit here.


(Original post by yt7777)
Firstly a simple example, I'm sure you'll be familiar with the relation between SQL and Relational Algebra and Set Theory? These two topics which were taught in one of my discrete mathematics modules in my first year (and feature in most other computer science maths modules), they essentially capture and underpin all you need to know to work out any SQL.
Personally I've never studied those, and I have no problem reading, writing, understanding or maintaining SQL. There's really no need for a mathematical background in order to be able to work with a relational database.


(Original post by yt7777)
Similarly, taking a module in machine learning which was quite theoretical and 'mathsy' but helped me when learning about practical data analytics, for example, If you're familiar with IBM's SPSS Modeller? Building out streams, albeit using a drag and drop GUI tool, but having the knowledge of the types of analysis/modelling methods from an academic perspective influences making the correct decisions which can affect the quality and accuracy of your prediction models. This also applies when using similar tools or a library/IDSL in whatever programming language, knowing the theory allows you to make informed choices when applying it through using tools.
As above, these are different disciplines. Computer science is very relevant for for R&D jobs working on cutting-edge technology, and other niche jobs involving mathematical modelling; software engineering on the other hand tends not to be focused on the R&D side of things; it's aboutsolving real problems rather than spending


(Original post by yt7777)
Bit of a more loose example is cryptography, everything I learnt about crypto on my degree was incredibly theoretical and maths heavy but learning this theory and drilling crypto properties down to gain understanding at a lower level, makes me more informed when making choices of crypto libraries and whats most appropriate for my problem.
I'm not really sure how that helps to be honest because the considerations involved generally aren't mathematical but business related; particularly on the strength of the cypher, and whether there's any need to maintain backward compatibility, or whether there's any kind of legal requirement for a particular cypher or following a recommendation by a platform vendor in their best-practice guidelines (e.g. Microsoft or Google). I generally do not see any need to have any understanding of cryptography in order to make that decision.


(Original post by yt7777)
More generally, studying topics like algorithms and data structures have probably the closest association to programming, for example, say you're searching through a list of data, obviously you'd use some form of library or IDSL, but how do you know which algorithm will complete your task most efficiently e.g. based on your data, should you use a linear search or a binary search? - just a simple example. But also, if you are ever working on something unique and you develop your own algorithm for a specific purpose, would you know how to conduct your own analysis? could you build the same feature more efficiently and optimise the complexity through other means?
In general, I wouldn't care whether something is efficient nor optimised as long as it actually meets all of its its functional and technical requirements. The only time optimisation is important are the rare occasions when a system starts to slow down or become unresponsive, in which case it's a matter of profiling the systems which are causing the problem and identifying bottlenecks, then addressing those. There's generally no value in putting a lot of effort into writing highly optimised code unless you have empirical evidence to show that it needs optimising.
0
reply
yt7777
Badges: 18
Rep:
?
#12
Report 1 year ago
#12
(Original post by winterscoming)
Any degree is worthless in 5 years time.
Not really true, you see many senior hire positions requiring a degree. For Software Engineering as well companies will typically ask for Computer Science


(Original post by winterscoming)
By learning the tools you'll also have the concepts behind those tools
This isn't necessarily true. One example I see a lot is learning to code in Java, you see some really shocking 'Computer Science' courses that mess this up and not actually teach any OOP principles and rather just teach their students to write really procedural, almost GCSE CS level code.


(Original post by winterscoming)
The point is that there's nothing particularly that University can teach you about general software engineering that you wouldn't learn by working as a software engineer.
And to get a job as a Software Engineer you'll generally have to do a degree or apprenticeship first. At least with a stronger computer science degree you can go into general software development, or more lower level technical work, such as R&D.


(Original post by winterscoming)
Problem solving abilities that someone with enough experience working in software will naturally have. Again, going to university has no particular benefit here.
Not quite the same as what you benefit from studying some of the more advanced topics in computer science, it's a different level of thinking than what you get from just learning how to code to develop applications, for example.


(Original post by winterscoming)
I have no problem reading, writing, understanding or maintaining SQL. There's really no need for a mathematical background in order to be able to work with a relational database.
Neither do I, but it made it far easier to learn SQL. Also, I frequently find myself planning and thinking in terms of relational algebra when designing larger queries. I regularly find myself saying project-select instead of select-from-where in my head Additionally, it can be useful for designing more advanced optimized queries.

(Original post by winterscoming)
In general, I wouldn't care whether something is efficient nor optimised as long as it actually meets all of its its functional and technical requirements. The only time optimisation is important are the rare occasions when a system starts to slow down or become unresponsive, in which case it's a matter of profiling the systems which are causing the problem and identifying bottlenecks, then addressing those. There's generally no value in putting a lot of effort into writing highly optimised code unless you have empirical evidence to show that it needs optimising.
Generally speaking i agree with the bolded statement, but if you ever find yourself working on some critical software or potentially computationally expensive software, which can even be something a bit more trivial like an app or mobile game. You will care and it will likely be a technical requirement or flagged by test.

The skill of understanding algorithmic complexity is key, this is not just identifying bottlenecks it can be as simple as just the code you write. Take a really simple example, say a Sudoku solver, a very simple problem but easily you can over-complicate it. If you have no knowledge of constraint satisfaction or backtracking/recursive backtracking algorithms it can be an easy problem to over-complicate (e.g. by taking a brute-force approach) resulting in building something that takes an unacceptably long time to complete. Obviously this is a trivial example, but you'll find problems like this when you work in industry too if you go into software engineering (depending on the type of work you're doing).
0
reply
Princepieman
Badges: 21
Rep:
?
#13
Report 1 year ago
#13
(Original post by winterscoming)
I agree that a degree isn't really the best way to learn them, but we're generally talking about a career which doesn't require a background in any of the things you mentioned.

Jobs such as Software Engineering, DevOps, QA Testing and Network Engineering really don't need an understanding in Discrete Maths, Algorithms, Data Structures and computer science theory. They aren't relevant in 2018, and they won't be relevant in 2050 either. The tools are relevant, except the underlying concepts for those are completely different.

For example, the concepts which underpin tools such as Selenium, SpecFlow and Cucumber are all about technical risk management and software quality - those are the underpinning concepts which someone needs to learn - although realistically, it's better to learn about those concepts when working on the job, rather than trying to study it from an academic point of view.


Except those concepts related to Maths and algorithms do not help anybody learn how to use new tools. A computer science graduate with a 1st from Oxbridge of Imperial will not have any easier time trying to learn something like Amazon Web Services for the first time compared with someone who simply taught themselves to code in their bedroom.

The only thing I've found which really makes these tools easier to learn is having a background in actively using similar tools before, and being able to relate the need for those tools, and the ways of using those tools to a 'new' way of doing things. For example, knowing how to use RabbitMQ makes it pretty easy to figure out how to use most other eventing tools because the concept of a message broker, message routing, queues, and publish/subscribe are pretty much universal -- I'd never really encountered them before touching RabbitMQ about 5 years ago, but now I see the concept cropping up all over the place.



This is an interesting point of view; which tools do you feel are easier to understand from having a computer science background? As someone who is entirely self-taught I have never particularly noticed any difference between myself and someone who has a degree from a top university doing exactly the same job for a similar period of time (around 10 years or so).

I tend to take the time to sit down with the tool, install it, read the documentation, do some research on the internet, find examples, tutorials, maybe some online courses if any are available, and just keep trying to chip away at it until it does what I need it to do and I understand it. What does a person with a degree do any differently?
Why do you keep including software engineering? Have you not seen what is required of good software engineers at good companies? The stuff those guys work on is no joke and the bar to pass DS&A technical interviews is very high.

I don't consider developing internal intranets/plug and chug enterprise software, QA, networks, database admin, IT etc as decent grad level tech jobs really. They're the sort of gig you should be able to do an apprenticeship in to get.

The stuff people work on at Google, FB, ARM, Intel, startups, dev agencies (like Pivotal), innovative areas of non-tech companies (e.g. M&S digital, walmartlabs etc), R&D depts, systems software etc is where real engineering comes to play and where you need people with solid fundamentals.

Everything else, IMO, shouldn't be deemed software engineering - maybe developing, but not engineering.

Posted from TSR Mobile
0
reply
Princepieman
Badges: 21
Rep:
?
#14
Report 1 year ago
#14
(Original post by yt7777)
Not really true, you see many senior hire positions requiring a degree. For Software Engineering as well companies will typically ask for Computer Science



This isn't necessarily true. One example I see a lot is learning to code in Java, you see some really shocking 'Computer Science' courses that mess this up and not actually teach any OOP principles and rather just teach their students to write really procedural, almost GCSE CS level code.



And to get a job as a Software Engineer you'll generally have to do a degree or apprenticeship first. At least with a stronger computer science degree you can go into general software development, or more lower level technical work, such as R&D.



Not quite the same as what you benefit from studying some of the more advanced topics in computer science, it's a different level of thinking than what you get from just learning how to code to develop applications, for example.



Neither do I, but it made it far easier to learn SQL. Also, I frequently find myself planning and thinking in terms of relational algebra when designing larger queries. I regularly find myself saying project-select instead of select-from-where in my head Additionally, it can be useful for designing more advanced optimized queries.


Generally speaking i agree with the bolded statement, but if you ever find yourself working on some critical software or potentially computationally expensive software, which can even be something a bit more trivial like an app or mobile game. You will care and it will likely be a technical requirement or flagged by test.

The skill of understanding algorithmic complexity is key, this is not just identifying bottlenecks it can be as simple as just the code you write. Take a really simple example, say a Sudoku solver, a very simple problem but easily you can over-complicate it. If you have no knowledge of constraint satisfaction or backtracking/recursive backtracking algorithms it can be an easy problem to over-complicate (e.g. by taking a brute-force approach) resulting in building something that takes an unacceptably long time to complete. Obviously this is a trivial example, but you'll find problems like this when you work in industry too if you go into software engineering (depending on the type of work you're doing).
this guy gets it

Posted from TSR Mobile
0
reply
winterscoming
Badges: 19
Rep:
?
#15
Report 1 year ago
#15
(Original post by yt7777)
Not really true, you see many senior hire positions requiring a degree. For Software Engineering as well companies will typically ask for Computer Science
I don't really think it's very many at all to be honest; I'm sure there are some, but just taking a very brief glance at CWJobs for Senior software engineers, I couldn't see any jobs on the first page of results which had anything like that in their requirements. The recurring themes are all about technical and domain knowledge, as well as extensive experience delivering working software, and the usual mix of popular tools and other buzzwords.


(Original post by yt7777)
This isn't necessarily true. One example I see a lot is learning to code in Java, you see some really shocking 'Computer Science' courses that mess this up and not actually teach any OOP principles and rather just teach their students to write really procedural, almost GCSE CS level code.
Indeed, that's a problem with some courses, but the point is that learning how to do something 'the right way' in one tool will get you the principles and that'll be transferrable to other tools - i.e. someone who learns how to write 'OO' code in Java will have no problem in any other OO language.


(Original post by yt7777)
And to get a job as a Software Engineer you'll generally have to do a degree or apprenticeship first. At least with a stronger computer science degree you can go into general software development, or more lower level technical work, such as R&D.
I agree those are the two best ways into this sort of work; there are plenty of others though - for example, it's not unheard of for people working in QA testing to self-teach and eventually move into development.


(Original post by yt7777)
Not quite the same as what you benefit from studying some of the more advanced topics in computer science, it's a different level of thinking than what you get from just learning how to code to develop applications, for example.

Neither do I, but it made it far easier to learn SQL. Also, I frequently find myself planning and thinking in terms of relational algebra when designing larger queries. I regularly find myself saying project-select instead of select-from-where in my head Additionally, it can be useful for designing more advanced optimized queries.


Generally speaking i agree with the bolded statement, but if you ever find yourself working on some critical software or potentially computationally expensive software, which can even be something a bit more trivial like an app or mobile game. You will care and it will likely be a technical requirement or flagged by test.

The skill of understanding algorithmic complexity is key, this is not just identifying bottlenecks it can be as simple as just the code you write. Take a really simple example, say a Sudoku solver, a very simple problem but easily you can over-complicate it. If you have no knowledge of constraint satisfaction or backtracking/recursive backtracking algorithms it can be an easy problem to over-complicate (e.g. by taking a brute-force approach) resulting in building something that takes an unacceptably long time to complete. Obviously this is a trivial example, but you'll find problems like this when you work in industry too if you go into software engineering (depending on the type of work you're doing).
Of course, I'm not downplaying computer science nor those skills in any way whatsoever; I'm trying to highlight the fact that the core skills in software engineering aren't really about computer science or mathematics so much as they're about managing complexity in ways which humans can understand and easily reason about; whether that's about using OO best-practices to structure code, or the way a project/solution is structured, or choosing the right architecture, or even picking the right tools and thinking about the trade-offs involved in different solutions.

Moreover, I tend to find that businesses who need to implement complex models generally don't want software engineers inventing the conceptual model; they'll hire a subject-matter-expert who understands all the problems in the problem domain, and is capable of helping the business model the solution - that includes anything mathematical, such as a bank hiring someone with financial expertise to help build up a conceptual model of the kinds of financial problems that the software needs to solve; the software engineers don't need to have any financial expertise in order to write the code, even though it might involve a whole bunch of extremely complex mathematical modelling techniques - there'll usually be a system specification which describes the mathematical solution and a set of acceptance tests agreed at a business level before a line of code is written.

There's definitely a place for those skills in businesses who are trying to do something new and original which hasn't been done before - especially in AI and other cutting-edge technologies, but the job market has more jobs looking for developers who will work within their business domain; it's generally not the kind of thing where anyone can simply come up with a mathematical answer to solve business problems; there's always business rules, deadlines, clients, configuration issues, legacy systems, external systems, business politics, legal requirements, industry standards, etc. The list goes on and on -- businesses really want technically-capable problem solvers who can cope with all that and deliver solutions to problems because that's what most of the job actually involves; they're generally un-fussed about the computer science stuff.
0
reply
winterscoming
Badges: 19
Rep:
?
#16
Report 1 year ago
#16
(Original post by Princepieman)
Why do you keep including software engineering? Have you not seen what is required of good software engineers at good companies? The stuff those guys work on is no joke and the bar to pass DS&A technical interviews is very high.

I don't consider developing internal intranets/plug and chug enterprise software, QA, networks, database admin, IT etc as decent grad level tech jobs really. They're the sort of gig you should be able to do an apprenticeship in to get.

The stuff people work on at Google, FB, ARM, Intel, startups, dev agencies (like Pivotal), innovative areas of non-tech companies (e.g. M&S digital, walmartlabs etc), R&D depts, systems software etc is where real engineering comes to play and where you need people with solid fundamentals.

Everything else, IMO, shouldn't be deemed software engineering - maybe developing, but not engineering.
I agree that apprentices should be able to get into all of those jobs, I'd like to see that happen more often personally,. But most IT jobs lead to pretty good career prospects, so in that sense they're all decent jobs to find as a graduate.

On the point about Software Engineering (Whether it's engineering or development, I don't think the name really matters); most of those jobs really aren't very innovative but there's still a huge amount of complexity to cope with, even if the solutions mostly happen to have been done many times before by other people - the kinds of problems being solved aren't 'easy', and the non-technical human/business pressures create many more difficulties; the need for technical skills is just as high, there's far less of a need to understand discrete maths, but much more of a need for pragmatism and a business head which thinks about things like clients, deadlines, budgets, etc..
0
reply
X

Quick Reply

Attached files
Write a reply...
Reply
new posts
Back
to top
Latest
My Feed

See more of what you like on
The Student Room

You can personalise what you see on TSR. Tell us a little about yourself to get started.

Personalise

University open days

  • Cardiff Metropolitan University
    Undergraduate Open Day - Llandaff Campus Undergraduate
    Sat, 19 Oct '19
  • Coventry University
    Undergraduate Open Day Undergraduate
    Sat, 19 Oct '19
  • University of Birmingham
    Undergraduate Open Day Undergraduate
    Sat, 19 Oct '19

Why wouldn't you turn to teachers if you were being bullied?

They might tell my parents (19)
7.31%
They might tell the bully (26)
10%
I don't think they'd understand (42)
16.15%
It might lead to more bullying (94)
36.15%
There's nothing they could do (79)
30.38%

Watched Threads

View All