5 ms·
FWIW larger companies don't hire "x coders" where x is some language. They look for CS fundamentals, mastery of programming paradigms, and then you work in what
by kajecounterhack 8y ago
FWIW larger companies don't hire "x coders" where x is some language. They look for CS fundamentals, mastery of programming paradigms, and then you work in whatever language you need / makes sense given the task.
- s3m4j 8y agoJust yesterday I was talking with my teacher about how he was tired of students (and parents) asking if he would add x and y languages to the curriculum.
- cema 8y agoWell, unfortunately many (both tech and non-tech) companies still want to hire developers with "x years of y language, n years of m framework" and so on. So there is some reason to ask for specific languages in the curriculum, from that purely practical point of view. Not everyone goes to work to a top place.
- outworlder 8y agoYes, but that's still wrong. If you are at school, university, whatever that is, you need to be exposed to concepts. Those will rarely change. For instance, Lisp already had garbage collection and object orientation decades before they were available in mainstream language, and the basic concepts still have not changed. Once you understand then, learning a new programming language is done in a matter of days (libraries and common idioms takes more time). You are basically transferring concepts you already know to a slightly different implementation, but there will be hardly anything entirely new. More so for "mainstream" languages. Then you need practical experience, which do not require teachers to be involved.
- giraffe 8y agoI agree with this. But unfortunately my experience is industry tends to not agree with us. They are like 'cool you know fundamentals, now do this take home project that requires x programming language with m framework'. This isn't too nice for new hires that learn just fundamentals and not the tooling and frameworks industry expects new grads to have. Industry seems to expect CS degrees to be vocational degrees.
- kbp 8y ago> But unfortunately my experience is industry tends to not agree with us. They are like 'cool you know fundamentals, now do this take home project that requires x programming language with m framework'. This isn't too nice for new hires that learn just fundamentals and not the tooling and frameworks industry expects new grads to have. I think the idea is that you should be able to pick up the language and framework as you go, if you do actually have the concepts down. If your generalised knowledge isn't to the point where you can apply it to some arbitrary framework/codebase in some arbitrary (imperative) language and start being productive more or less immediately (with documentation open in another tab), then your generalised knowledge just isn't at the level where people care about it, yet. edit: That generalised knowledge they're expecting absolutely might go beyond what you're shown in school (it depends on the school). If you draw the line of "fundamentals" at "what was in my curriculum", then that's an arbitrary line you're drawing, and it's not the line that most of the industry is using (even if people are using their own coursework as their meter). If you consider (eg, in a web dev context) HTTP requests and MVC "fundamental", then you should be able to pick up Rails or Django or whatever without much trouble. Whether or not your school had classes on that doesn't really matter to anyone.
- giraffe 8y agoI think you missed my point. Companies I've seen don't care if you have fundamental knowledge of algorithms and data structures. They are testing you on specific frameworks via interview questions and take home projects. They are looking for industry experts in certain frameworks. These companies seem to equate CS programs with vocational schools or bootcamps and are only looking for coders that already know certain frameworks. Your comment justifies what I already believe and understand, but I am pointing out some companies seem to value bootcamp-tier knowledge more than fundamental knowledge and discriminate against graduates that focused heavily in theory but little in frameworks.
- kbp 8y ago> Companies I've seen don't care if you have fundamental knowledge of algorithms and data structures. They are testing you on specific frameworks via interview questions and take home projects No, I got that. My point was that no one cares that you completed an algorithms and data structures course, they care that you know the fundamentals of (the subgenre they're interested in of) software development. You're just using a definiton of "fundamentals" that excludes the (entirely language and framework independent) concepts they care about that you don't know. A take home project using a specific language and framework does not require you to know either to complete it before you start; if you know the concepts, you can pick them up as you're writing it. If you've never seen MVC before (and the knowledge you have doesn't allow you to grok it fast), then in a web dev context I would argue that that is a fundamental concept you are missing, which was my point. Interview questions can be different, but you didn't mention them in the post I responded to.
- TooBrokeToBeg 8y agoFWIW that's not a true statement. Large companies have roles and vacancies where there are expectation and existing code to maintain.
- pdpi 8y agoVaries a lot. E.g. when I was at FB I joined a C++ team while having written about 200 lines of C++ before in my life — we also had proper C++ experts in the team, and they cared more about experience in the problem domain. All of these conversations were held _after_ I was hired though — the pipeline is a mixture of hiring experts for specific positions and "hire people that seem good enough, and let them find their own teams"
- malkia 8y agoSimilar with me, background in mostly C/C++/Pascal, etc. - joined Google and had to write Java - what surprised me mostly were: Killing app due to GC stress, Dependency Injection, Checked Exceptions and using various containers (map, set, etc.) as an interface without assuming concrete implementation (or maybe not so). Didn't graduate well from this "program", but give full respect to Java now. Back to C++ land for me, and it's been good.
- praneshp 8y ago> then you work in whatever language you need / makes sense given the task I think this simplifies the truth too much. At least in my limited experience, you work in whatever language your team is working in.
- joshuamorton 8y agoDepends, I'm currently coding almost entirely in python, the guy behind me is using almost solely C++, and the person to my right is working solely in Java right now. Last week I was split heavily between python and javascript, but will likely write very little JS in the near future. At that point, another person on my team was working heavily in Go, although that is also finished now. Its not just "what your team works on", but what fits the task/what the existing tooling is in. If you're only working on a single product/project ("I develop the android app for XYZ product"), you likely work in the same language or two as the rest of your team. But that isn't always the case.
- outworlder 8y agoUsually, yes. But it does not mean that you should use a screwdriver to drive a nail just because that's what others are doing. They may be working with screws. In more practical terms, you are not going to write a cronjob in java just because that's what the main system is written in.
- yeeeeeeeeee 8y agoI think in this context "you" can be interpreted as "the team."
- outworlder 8y agoThe statement is true for many teams in the best tech companies. Many of the "crappy" companies do look for "X programmers" even when there is no need, just because of the tech they are currently working on at that specific point in time. Even when they are large (especially when they are large, it would seem).