#Hi

1 messages ยท Page 1 of 1 (latest)

thorn flower
#

The definition of "excellent computer scientist / software engineer" and "successful at big companies like ..." may not overlap, and may vary to extreme degrees for most cases.

Everyone has their different ways in how they ended up in company x. So, the best neutral but useful answer anyone will be able to give is having a solid background in CS fundamentals - know what happens in the background of the computer all the way down to the OS & hardware level, as well as the true implication of your code: how / why it works and being able to explain it to others. Then, you have to be able to be good at coding to some degree.

noble roost
#

Hey thought I'd share my experience ๐Ÿ˜Š give you an insight into someone with over 10 years experience now.
What Dan has said above is very true!

So I went to an "average" University. Didn't have the strongest computing school but it was a hand on experience University. I managed to work for a blue chip company. Yeah okay I left because I couldn't cope with the pressure at the time. But what I did learn, yeah most people would say high ranked Universities are looked at first in the hiring process but never ever think that. My hands on experience I was taught through internships the university set us up with actually made me stand out slighlt more. I had soft skills I.e. I knew what being in an agile team was like, I knew the full cycle process in practice and I knew how to adopt quickly to a framework that I may have not touched before.
I am a big driver in telling people don't forget to learn the practical side of programming. You'd be amazing the amount of graduates I've worked with, who are amazing at the principles. Can't fault there theory knowledge one bit. But couldn't understand sprints, design meetings and so on. That does come with confidence too but learning how to fix code that's on a branch with say 20 other developers is something people seem to not look at. That can be very daunting for someone who's just started out after university

reef crown
reef crown
# noble roost Hey thought I'd share my experience ๐Ÿ˜Š give you an insight into someone with ove...

Honestly, I don't have much issues with practice before I started my degree, I have also worked as a software engineer for 1,5 years.

I'm actually referring more to the theoretical basics, as Dan already mentioned - so that I have a good CS foundation.
So that I can quickly move from a backend role to an AI role, for example, because I know the theoretical basics. Or even maybe switch more in a more scientifically oriented role.

reef crown
#

So the actual question is: Is the potential to become an excellent software engineer/computer scientist compromised if you only have satisfactory theoretical CS knowledge?
And can you teach yourself the necessary basic knowledge on the same level as people from elite universities/companies?

noble roost
#

Yes of course you can ๐Ÿ˜Š

thorn flower
#

Is the potential to become an excellent software engineer/computer scientist compromised if you only have satisfactory theoretical CS knowledge?

To be a good computer scientist you should definitely have a strong background in CS fundamentals. By definition, you'd explore more in the field of research and academia, at the forefront of new CS advancements.

To be a good "software engineer", you'll need some background for sure but you don't need to be at PhD level - it helps, but definitely not necessary. You'd focus more on engineering excellence, contributing to a good codebase, making sure your systems are in good order, etc. Those are a bit more industrial best practices, which may not necessarily come from the Computer Science field.

#

I think you're mistaking "Computer Scientist" and "Software Engineer" - someone who only went through a 6 week coding bootcamp who knows how to navigate their way around in JavaScript to create websites, is still a software engineer. But, they would lack the knowledge to understand why an algorithm might only run O(n) or even explain what that is.

#

But how do you mean "to some degree" exactly?

There isn't a way to measure someone's ability to code. When I read someone's resume and they say they're intermediate in Python, that's an objective opinion and not an absolute measure of their skills.

To clarify though, you should be able to translate algorithm to code for a given situation, without much problem. That bar can be set very low or high depending on what your expectation might be, and every company's interview will differ greatly for this. A good baseline to go off of will be to set the bar higher than the average - which is, given any popular algorithms (i.e. BFS, DFS, Dijkstra's, Merge sort, LRU cache, Tree balancing algos), can you apply it to a problem?

#

If what you're trying to find out is "what is the bare minimum I need to get into these companies" - there isn't. The best advice anyone will be able to give is continue to build up on both your CS fundamentals and coding skills, and eventually you'll get there.

reef crown
#

Thank you, Dan!
That helped me a lot! ๐Ÿ™‚