Big Tech’s Hot New Talent Incubator: Community College
As someone who&#x27;s attended a community college both in my undergraduate career and again in preparation for grad school, this is something I think about quite a bit. Overall I&#x27;m pretty happy with my experiences studying at community college, and I&#x27;m of the mind that for most subjects, you can get a good education there. While I think it might be possible to get a decent education in preparation for a software development career at _some_ community colleges (like the technically-focused ones mentioned in the article), I suspect that&#x27;s not the case generally. I think that has to do with two things:<p>One, part of the problem is that I&#x27;ve found &quot;computer science&quot; and &quot;software development&quot; get shoved under the umbrella of the &quot;computer technology&quot; departments of community colleges, rather than the math or engineering departments. Consequently there&#x27;s a sense that software development is an extension of IT rather than an engineering practice. That might be true in a lot of settings (e.g. making VB widgets), but I&#x27;m not sure it&#x27;s great for producing generalist developers. Frankly, I think it also lends to unqualified people leading departments, hiring instructors, and designing a curriculum. Anecdotally, one semester I took a discrete math class (through the math department) and a data structures class (through the CIS department); I ended up learning a lot more about data structures in the math class, and the programming project I did for the math class was much more instructive than any of the projects in the CIS class.<p>Two, across all institutions (boot camps, community colleges, universities) there doesn&#x27;t seem to be a coherent curriculum on how to teach this stuff [1]. With math, english, economics, etc. the lower division classes are basically the same everywhere. Even if you think the way we teach subjects is kind of weird (as I do with math), everyone knows what &quot;Calc II&quot; means, or what&#x27;s taught in an intro to microeconomics course. With software, there&#x27;s no consensus on where to begin. Is it an infusion of theory and practice ala the SICP-based courses (MIT and Berkeley)? Intro to programming (Stanford)? A class where you learn how to use an office suite (a lot of community colleges)? Git and HTML&#x2F;CSS (bootcamps)? [2] As a result, it&#x27;s not surprising that individual classes don&#x27;t line up. Maybe this is fine for the case where students will only ever study at one school, but for a lot of students indenting on transferring to a university (or anyone trying to evaluate a curriculum) it&#x27;s quite cumbersome.<p>Not being an educator (and being mostly self-taught for software development), I&#x27;m not sure what the best approach is. Personally, I think a combination of theory&#x2F;assignment based classes supplemented with longer-term project courses is probably the way to go. The former helps in presenting a general area or class or problems, and how to solve them, and the latter might help with exposure to the diversity of practical software development.<p>[1] I say &quot;stuff&quot; intentionally. Even the scope of &quot;software development&quot; is huge and hazy<p>[2] I could be wrong with the specifics on schools here :)