3 ms·
Study & Experience, that's it. Also understand the difference between these programmer application developer software engineer computer sc
by segmondy 7y ago
Study & Experience, that's it.
Also understand the difference between these
programmer
application developer
software engineer
computer scientists
there are very different roles, it's okay to be one and really good at one.
BTW, you mentioned "design" so I'm going to hinge on that, design not the actual implementation. In that case study existing systems. 90% reading can teach you design, on actual implementation, more like 90% doing.
- rochak 7y agoWhat if I’m not inclined to just one of these? I like learning things and figuring out why which is why I see myself fitting into every category.
- segmondy 7y agoNothing wrong with that, if you are a generalist you will find yourself intersecting those. Else you will find yourself focused in one. There are very few organizations in the world where you get to do all of those, except for a startup in the initial stage or by you pursing your own side projects. Something like game programming might intersect all (programming - using GPU, app development - the game engine, software engineering - building a scalable game server, computer science - utilizing appropriate algorithms and data structures that most people will tell you they never use in the real world) if you want to do the programming thing - learn low level programming, buy an arduino etc and learn to program it. app development - build websites, mobile apps, desktop apps. software engineering - contribute to a large scale app (kubernetes, postgres, etc) computer scientist - study latest CS papers, replicate result, write your own paper and come up with your own ideas.
- rochak 7y agoAfter you define what these terms mean, I think I am more inclined towards programming and software engineering. Thanks!
- Scarblac 7y agoThe first three of these are synonyms. I've had all three job titles, over six different companies for roughly the same work.
- segmondy 7y agoNo they are not, but that's my opinion. Let me explain... A programmer can really program a computer. Think of the person that writes an operating system, a bootprom, all your embedded systems programmers. traffic light, very low level, operating near the hardware level/systems programming, assembly, C, rust, etc. your Linux kernel programs & device driver writers. You give them a device, give them the spec and they can bring it to life. Application developers - build apps typically using higher level library and frameworks, think of your android, ios developer, microsoft windows app developer, CRUD website developer, they build apps for users. Most app developers call themselves programmers, but IMHO are not. Take away their framework, DB and most of them can't even build much with just a language and the stdlib. Software engineer - more at the system levels, this is not about programming at the low level or user apps, but engineering software systems. Think of the folks behind AWS cloud, the sort of people that wrote zookeeper, kubernetes, Gnome, Unity, kafka, there's a lot of engineering discipline at this level. Code bases are usually in the millions and never really a single developer. Computer scientist - new ideas, refinement of old ideas, algorithms & analysis. Their output is mostly papers and with some code to demonstrate the idea. This will be the person that gives you something like the raft algorithm or some new twist on machine learning. Surely, one can intersect some or all of these, but it's also possible to be just one of these. 80% of the companies out there are hiring app developers and that's what they care about.