Ask HN: Do you need a CS certificate to work in programming field?
7 comments
This won't be a good answer, but the best I may give now...
I learned programming when I was 13 by myself (in the 90's), then graduated in CS and now I'm managing developpers (and trying to recruit).
What I look for in a job position is: someone with passion for CS OR at least someone with experience or at least a CS degree. So a CS certificate is NOT a prerequisite BUT you'll need at least to be able to show some real achievments in CS (like a not trivial website for example) and be able to explain how you did it, what choices you made and why, what you tried, what failed and why...
On the other side, "graduation" with online CS (HackerRank or other) is not really meaningfull (YMMV): it does show that your brain work but not your creative side (and programming IS creating).
Soooo... either learn by yourself and build something meaningfull (and sooner or later you will need so CS theory... on complexity and algorithm for example to tackle real problems)... or get CS degree to get job, then experience, then better jobs...
I learned programming when I was 13 by myself (in the 90's), then graduated in CS and now I'm managing developpers (and trying to recruit).
What I look for in a job position is: someone with passion for CS OR at least someone with experience or at least a CS degree. So a CS certificate is NOT a prerequisite BUT you'll need at least to be able to show some real achievments in CS (like a not trivial website for example) and be able to explain how you did it, what choices you made and why, what you tried, what failed and why...
On the other side, "graduation" with online CS (HackerRank or other) is not really meaningfull (YMMV): it does show that your brain work but not your creative side (and programming IS creating).
Soooo... either learn by yourself and build something meaningfull (and sooner or later you will need so CS theory... on complexity and algorithm for example to tackle real problems)... or get CS degree to get job, then experience, then better jobs...
What do you mean by a "not trivial" website? As I am focusing currently on Python, one of my benchmarks is talkpython.fm, which I know is written in Python. Is this website trivial or not?
No but if you’re the kind of student that thrives on the structure then the degree program is nice. Plus a good school has an Alumni network that could help with getting placed
A self-taught programmer needs a portfolio, preferably a visible demo, at the very least some specific project done for hire or for the good of the community.
I know, I mentioned that I am planning to build a website(s) with/for my portfolio of projects and tasks demonstrating various skills, but he keeps reiterating that I need to attend some locally taught courses to get a certificate.
In the valley you do not need a degree of any sort, but not having a degree is definitely the exception. Those people without a degree often have a long work history working for companies doing low level NOC/admin work while they leverage the coding skills they learn in their off time to become more valuable until they de-facto work as a programmer.
> I am tired of all this idiotic circus.
Here is the most important lesson you learn in college in a nutshell: You aren't as smart as you think you are and there are a a lot of things you don't know you don't know. If you're used to being the smartest person in any group of 30 people, then college can greatly humble you. College was the first time in my life where I was in a room and it was clear I was not the smartest person in it, maybe not even in the top half.
College, in my experience, helps diminish the Dunning-Kruger effect greatly.
I've interviewed a lot of people for SWE and performance greatly correlates with college. I never asked particularly hard questions and they were always very pragmatic questions, not ivory tower stuff. Many of the best staff engineers/managers I've worked with had masters degrees. It is more often than not graduates that make core systems.
The way you write shows that there is a lot you don't know you don't know and that you are considerably overconfident in yourself, particularly before you have a portfolio of externally validated useful software to backup your claims of how good you are.
Pragmatically:
A CS degree sets you up with a lot of information that would be useful for interviews (and understanding how things work) in an organized and systematic way.
Big O notation, basic data structures, basic algorithms, basic data structure manipulation with algorithms. Intuition about these things.
After basics, engineering courses take you on tours of important systems and protocols and touch on why they are the way they are not just what they are.
If I say "recursive backtracking" do you know what that means? That's a first semester topic and just about every company in the valley was doing interview questions that used it. Do you know test and set? Do you know why it is important? Do you know the three way handshake? Do you know why it is the way it is? Exponential backoff? Can you implement DFS/BFS in 5 minutes? Dijkstra's? Have you heard of dependency injection? Do you know why it's important? Entropy? Hashing? Buffer overflow? SQL Injection?
How much of this do you understand? https://github.com/alex/what-happens-when
> I love my own original interpretation of CS foundations and concepts.
You take this as a point of pride, but having a shared language and understanding allows you to communicate with and leverage other people.
I can't speak for the level of education you are around, but there exists good education that is definitely worth seeking out.
> I am tired of all this idiotic circus.
Here is the most important lesson you learn in college in a nutshell: You aren't as smart as you think you are and there are a a lot of things you don't know you don't know. If you're used to being the smartest person in any group of 30 people, then college can greatly humble you. College was the first time in my life where I was in a room and it was clear I was not the smartest person in it, maybe not even in the top half.
College, in my experience, helps diminish the Dunning-Kruger effect greatly.
I've interviewed a lot of people for SWE and performance greatly correlates with college. I never asked particularly hard questions and they were always very pragmatic questions, not ivory tower stuff. Many of the best staff engineers/managers I've worked with had masters degrees. It is more often than not graduates that make core systems.
The way you write shows that there is a lot you don't know you don't know and that you are considerably overconfident in yourself, particularly before you have a portfolio of externally validated useful software to backup your claims of how good you are.
Pragmatically:
A CS degree sets you up with a lot of information that would be useful for interviews (and understanding how things work) in an organized and systematic way.
Big O notation, basic data structures, basic algorithms, basic data structure manipulation with algorithms. Intuition about these things.
After basics, engineering courses take you on tours of important systems and protocols and touch on why they are the way they are not just what they are.
If I say "recursive backtracking" do you know what that means? That's a first semester topic and just about every company in the valley was doing interview questions that used it. Do you know test and set? Do you know why it is important? Do you know the three way handshake? Do you know why it is the way it is? Exponential backoff? Can you implement DFS/BFS in 5 minutes? Dijkstra's? Have you heard of dependency injection? Do you know why it's important? Entropy? Hashing? Buffer overflow? SQL Injection?
How much of this do you understand? https://github.com/alex/what-happens-when
> I love my own original interpretation of CS foundations and concepts.
You take this as a point of pride, but having a shared language and understanding allows you to communicate with and leverage other people.
I can't speak for the level of education you are around, but there exists good education that is definitely worth seeking out.
>>Pragmatically:
Doing tasks on HackerRank should be fine regarding these subjects. But thanks for the keywords.
Regarding "my own original interpretation of (some of) CS foundations and concepts", it's not as much "a point of pride", but rather lack of context here. My interest is actually in the intersection of several fields with CS, if I were to choose I'd choose CS & electrical engineering and apparent confidence comes mainly from abstractions of some underlying physics.
Any time I share anything, there is a surge in various elements of the ongoing idiotic circus, this is why I really don't care.
Doing tasks on HackerRank should be fine regarding these subjects. But thanks for the keywords.
Regarding "my own original interpretation of (some of) CS foundations and concepts", it's not as much "a point of pride", but rather lack of context here. My interest is actually in the intersection of several fields with CS, if I were to choose I'd choose CS & electrical engineering and apparent confidence comes mainly from abstractions of some underlying physics.
Any time I share anything, there is a surge in various elements of the ongoing idiotic circus, this is why I really don't care.
When I told that I want to build a website, he sent me some master's degree paperworks of his students who built sites for some bs companies, but I am not interested in their industries and would never be fully motivated to build any websites for such companies. One of the advantages is that he may have some connections regarding the local work opportunities, but some of his connections keep reiterating that to get a programming job you always need some certificate of completion of some locally (Baltic EU) tought courses. When I told about HackerRank, numerous online CS learning platforms etc, there was no reaction.
Should I waste my time and attention on this? How can I stop this idiotic circus?
I am tired of all this idiotic circus. I am happy enough by teaching my self CS myself, despite that I havn't made any money with it. I know exactly why it is so, and how to change it. I love my own original interpretation of CS foundations and concepts. I think it is very unique and you won't find it in any current textbook. I can design enough interesting/useful coding tasks for myself by using online resources and I have more than enough free and paid resources online and offline textbooks to teach my self CS myself seamlessly.