Hacker News new | ask | show | jobs
by wiz21c 2151 days ago
Unless you want to work in internet facing stuff, there are many places where IT is part of another domain. For example, bioinforamtics, simulation, finance, etc. Many of those requires computer science + a good understanding of maths (calculus is useful in many geo stuff, discrete maths is useful in many computing tasks, entropy is useful to understand where you are when you compress data, etc). So, many of the maths courses that usually go with a computer science degree are helpful. Unfortuntaly, understanding maths by oneself is not easy and online courses quality greatly vary (I've tried to understand expectation-maximization algorithm using various online courses and it's not easy : sure, you'll get the big picture, you'll understand how to apply the algorithm, etc. but if you want to understand why (not how) the algorithm actually works, then that's another story, maths are necessary and the way they're explained is very different from courses to courses, and with different level of quality.)

It also helps to not reinvent the wheel : many problems were analytically solved long before most of us were born.

1 comments

Indeed.

My advice for a career in computing is "either become world expert in some durable technology with a high barrier to entry, or else find a secondary specialty" (math, finance/econ, natural sciences, an engineering discipline, pre-law are all good choices).

My advice for a career doing generic undifferentiated software development is "don't", or at least "move into management during your 30s".

As someone who more or less did a generic CS degree in their undergrad, how would I go about correcting for the lack of a secondary specialty? Would I have to get a masters later on? Focus on taking jobs at companies in specific domains?
Most job requirements specify a suitable undergrad degree or equivalent work experience. At some point what degree you have doesn't make any difference any more. It's what experience you have, be it through research or on-the-job.

So either route is open to you. Do you have something particular in mind?

I see. At the moment, I'm not super sure hence why I'm hesitant to say that I'm going full throttle on anything but in terms of domains I'm interested in exploring further:

1) "Civic tech" which I hesitate to define since it's so nebulous that I imagine my definition differs from that of other folks but the way I think about it is that it either involves government modernization (a la the Canadian Digital Service), companies that provide services to the government (a quick Google search brings up https://home.promise-pay.com/ as an example), or companies that help communities/cities function better (this one is probably the most controversial criteria but when I include it I'm thinking of Sidewalk Labs). I suppose the secondary "specialty" would have to do with public policy but from perusing the careers pages, it seems that in general experience is all they're ultimately interested in (at least for the software engineer positions I would be gunning for) but I would suspect some domain knowledge is what they would prefer in addition to that. So far, I've just been exploring this domain via involvement with open-source projects within this space.

2) Cybersecurity: I'm not sure if this qualifies as a secondary domain since it's still very "computer sciencey" and is quite broad in and of itself but I suspect that it's a much wider space than civic tech which is why I find myself torn between which one is worthy of further exploration. Within this space, I would probably be either be interested in application security positions (https://www.facebook.com/careers/jobs/123558231663498/ as an example) or "secure software development" positions which I understand are positions that involve building software that operates in the context of improving the security posture of a company (ex. software that conducts static analysis of source code to find potential vulnerabilities). To determine whether I am interested in this domain, I've just been going through application security resources (currently, the Crypto 1 course from Stanford but I'll be following that up with other resources from https://github.com/paragonie/awesome-appsec). With regard to next steps after that, I've been thinking of https://www.edx.org/masters/online-master-science-cybersecur... but I'm a bit conflicted given that I've received conflicting opinions on the usefulness of a masters within the field of cybersecurity.

TL;DR: "Civic tech" and cybersecurity are the 2 I'm considering. I'm unsure which domain is worthy of my entire attention but I've been immersing myself in each to a varying degree via related activities.

You can look at our equivalent, the UK Government Digital Service which hires a lot of tech people. You could probably learn the relevant stuff on the job.

Cybersec I have zero qualifications in, but it seems also like a lot of practical jobs (e.g. pen testing, white-hat stuff) are also more experience focused. Presumably it does help to have some background on the theory, which you might get asked in interviews. But presumably there's a large spectrum of work here, from very theoretical audit/provably secure-type stuff, to more practical work where you try and identify obvious holes in software.

With regard to the GDS:Is the GDS available to Canadian citizens? I know that we're classified as Commonwealth citizens but I saw that Commonwealth citizens only have access to non-reserved posts and I'm not sure if the GDS is reserved or not.

With regard to cybersec:Yeah, that's more or less in line with other folks have said to me. I think with this I'll just keep reading books until I get a sense of what my niche is.

Thanks for your advice!