4 ms·
I have a CS degree and 20+ years of professional experience and I can tell you that your love of philosophy and symbolic logic will serve you far better than an
by doctorwho 15y ago
I have a CS degree and 20+ years of professional experience and I can tell you that your love of philosophy and symbolic logic will serve you far better than any of the advice you've received here so far.
Would you just dive into a proof using truth-functional propositional calculus if you were totally ignorant of the rules of inference?
Would you try to operate on someone without being training in medecine and surgical techniques?
Ignore anyone that tells you to learn "language X" or "just dive in and build something". It's bad advice, unless you like stumbling around in the dark.
The right way takes longer but you need to build from a solid foundation. Right now, you don't know what you don't know.
Which language or platform you choose will be largely irrelevant. Learning a new language shouldn't take you more than a few weeks. Mastering a new language is another matter entirely, but essentially still just a matter of practice.
Invent your own pseudo-language (or read about pseudo code) and learn how to decompose a problem into discrete steps. Learn to recognize and apply patterns in your solutions. Familiarize yourself with common data structures and algorithms. Do all of this before you ever try to write a line of code.
While you're doing that, read voraciously. Books. Blogs. Read everything you find anywhere that good programmers congregate (like Stack Overflow). Ignore the loud hand-waving pundit. Listen to the quiet voice of sanity. You'll soon learn to separate the wheat from the chaff.
Unfortunately, the wrong way sometimes works. The danger is that you'll build mental models of how things work based on the language and environment that you use. We need these models to cope in the absence of deep understanding. It's how the brain works and we do it almost automatically. However, if you approach the process at a more abstract level your model is more encompassing and you can easily simplify it to fit the situation. Shifting your thinking from abstract to concrete is easy, the other way is much harder because you're missing the big picture.