Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It depends a lot. This is opinion, but I would say that there are three big categories of software development skills. Of course most jobs are a mixture of these.

1. Web development (transport-level and higher networking, HTML/JS/CSS, PHP/Perl/Python/Ruby, using databases, etc.)

2. Enterprise software design (domain modeling, OO programming, system architecture, scaling, security)

3. High performance (algorithms, advanced data structures, C/C++, memory management, DB internals, internet-layer and below networking, cryptography)

It sounds like you want to get into 3. A good way to start is algos/data structures. Almost all the fields the parent listed benefit from a very strong foundation in computer science: discrete math, linear algebra, algorithms, advanced data structures, etc.

Data analysis with python/R is more for scientists and mathematicians, not software developers. If you are being paid to analyze data as a programmer, usually you are analyzing very large data sets and you will be using a much more performant language or possibly even a highly parallelizable paradigm like MapReduce.



The easiest path into a nr 3 job here is to find a job with an engineering product company, ie a company that sells a high-tech product that is not software.

My current job mixes those three categories nicely and I love it :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: