5 ms·
Maybe this will ease my OCD brain of feeling like I need to get get an undergrad in CS to continue by programming career and "earn my stripes". Maybe all I need
by varrock 7y ago
Maybe this will ease my OCD brain of feeling like I need to get get an undergrad in CS to continue by programming career and "earn my stripes". Maybe all I need is exposure to algorithms to feel like I'm more fit for the job. This might do just that. Looking forward to it.
- agumonkey 7y agoThat's worth a separate thread. I'm digging deep into analysis and combinatorics[0]. But I'm fairly convinced that the market for this is small. Be sure to look at the situation when doing efforts. [0] I used to find it impossibly hard to work with trendy frameworks and preferred the mental bliss of hard topics. But at one point you need money and being good enough at making a company work can be a good compromise. As long as it's not too hellish.
- valw 7y ago> I'm digging deep into analysis and combinatorics Thanks, could you provide some material recommendations? I'll share one: I've really, really enjoyed 'Graph Theory' by Bondy and Murty (2007 edition): https://www.springer.com/kr/book/9781846289699 https://www.springer.com/kr/book/9781846289699. Disclaimer: it's much more focused on the mathematical / combinatorial aspects of graphs than on concrete algorithms, although there are some algorithms in there. Some math background recommended.
- agumonkey 7y agoThe classic suggestion is Brualdi, there's also R. Stanley Enumerative Combinatorics http://www-math.mit.edu/~rstan/ec/ http://www-math.mit.edu/~rstan/ec/ but right now I'm starting with basics on S. Gill Williamson Foundations of Combinatorics with Application. I don't mind pure reasoning, but I need practical programming uses to at some point. (maybe joblessness anxiety showing) I also have some graph books but since it relies on combinatorics rapidly ..
- harshreality 7y agoCombinatorial Problems and Exercises by Lovasz I don't know much in the way of more advanced expository combinatorics books, other than the more narrow Generatingfunctionology (Wilf) and the already mentioned Enumerative Combinatorics (Stanley).
- milemi 7y agoI warmly recommend Analytic Combinatorics by Flajolet & Sedgewick, freely downloadable at http://algo.inria.fr/flajolet/Publications/book.pdf http://algo.inria.fr/flajolet/Publications/book.pdf I like the books you mentioned, but this one I love.
- drbojingle 7y agoA CS degree is just a collection of topics that you study. Look up the topics, find books, articles, etc on the topics, find a mentor, study the topics, "get degree". The only thing missing are metrics but the metrics aren't the point. My local university has a book store and the books per course are all there so if I wanted to I could pick up all the books for a CS degree and read um. I could find a list of profs too and I bet if I emailed some I could find one that might talk back. There's all kinds of ways to go about this :)
- varrock 7y agoI agree, and I've found great resources like TeachYourSelfCS[0] and OSSU[1] to name a few, but there are so many options out there that I am overwhelmed. Reading reviews doesn't help, either. I think I need to commit to one that will get the job done and get me thinking from a CS perspective. Also, I want to be a great software engineer. I've heard arguments that a CS degree doesn't equate to software engineering in a practical sense. [0] https://teachyourselfcs.com/ https://teachyourselfcs.com/ [1] https://github.com/ossu/computer-science https://github.com/ossu/computer-science
- ppseafield 7y agoI was a self-taught dev for nearly a decade. Then I got the opportunity to go back for the CS degree. Probably the biggest thing that I got out of it was that I had to work on some things I almost never would have done myself (for me, my low level C/Linux code and networking classes), and it expanded my overall understanding of computers a bit. You can do that yourself, but you have to do it yourself. :)
- drbojingle 7y agoThis is a psychological phenomenon called choice paralysis. My advice: get a mentor. Someone who knows the industry and can remove bad options. OR. Just pick one and forget about it. Personally my favorite approach a Bring your own idea approach, where you come up with something you want to build and then figure out how to build it, rather than focusing on what's hot or best or correct. You can stripe down CS and focus only on the product development necessary to achieve a release. Gets you coding, which is a good first step in to CS and a better first step in to the industry (CS != business. Overlaps but ain't the same.) I'm teaching my girlfriend to code and right now she's on the basics: html, and css. She had no idea what to build so I got her to start working on a dictionary of all the things she's learning (essentially she's taking her notes on html, in html). Very recursive and reinforces the knowledge, but (if they're curious) it would naturally segway into "how do I make it look pretty" (which it did) and we're continuing from there.
- chasd00 7y agogo visit a campus and just talk to a professor, the usually love the attention. You can also audit classes for very cheap (or at least it was cheap when i was in school). + I think MIT posts their lectures online for anyone to watch.
- streetcat1 7y agoSo a CS degree is half or even more a math degree. I am yet to find a popular "learn c++ in 24 hours" course that teach you the math needed to think correctly. The core problem with programming is not the syntax or even the tools, but complexity and abstraction. I.e. programming do not scale well. A 1M LOC program is much different than 100K LOC which is different from 10K LOC, and you need intellectual tools to analyse at different scale. A non CS programmer usually lack the intellectual tools to analyse problems logically before programming, and jump to code too fast (which is actually encouraged by the "agile" methods, TDD etc).
- arvinsim 7y agoI think this really depends on the problem. Some problems are best approached by extensive upfront planning while some problems can be better solved by trying the idea out and building a quick prototype.
- deleted 7y ago[deleted]
- ronniegeriis 7y agoHere's your friendly reminder to not misuse a mental health illness :) Mental health is an important topic these days, thus it's important not to downplay certain illnesses and their meaning.
- PopeDotNinja 7y agoYou don't need a CS degree. It might help, but I dunno. I don't have one, and I am a dev. What you do need is what YOU need, which is to say you have inclinations and limitations. You'll quickly learn your inclinations as you get into programming, as certain activities will be way feel way more interesting & fun to you. I hate studying things I don't need now, which is a limitation, but that no means does that mean I cannot learn those things. Back to the BSCS thing. The more competitive a job is, the higher the bar to get that job. High paying dev jobs often have the questionably relevant algo questions. 10 years ago it was questions about pirates with gold coins & moving My. Fuji. In 10 years it might be Alan Turing trivia questions. The only thing you can do to optimize for interviewing is to interview, and it helps to be generally competent in your no niche of choice.
- leshow 7y agoThe degree isn't important IMO. What is important is a strong understanding of algorithms, data structures, memory, cache locality, your chosen language runtime, etc. Granted, it depends somewhat what you are doing. If your job is to make wordpress templates then it's probably not as important (not to diminish the people working with wordpress & friends), but still an invaluable thing to learn. The associated calculus & math you'd learn in school for CS/engineering is also worthwhile to learn.
- mruts 7y agoCS isn't anymore of coherent subject than, say, math. And (much like math), the useful/practical parts that'll get you 80%-90% there in solving arbitrary practical problems aren't all that difficult to learn. Just learning your data structures and how to implement them will serve you very well for many/most tasks.