{"id":1478,"date":"2026-09-03T02:37:19","date_gmt":"2026-09-03T02:37:19","guid":{"rendered":"https:\/\/blog.gwadej.org\/programmer-musings\/?p=1478"},"modified":"2026-09-03T02:37:19","modified_gmt":"2026-09-03T02:37:19","slug":"oomp-education","status":"publish","type":"post","link":"https:\/\/blog.gwadej.org\/programmer-musings\/2026\/09\/oomp-education\/","title":{"rendered":"OOMP: Education"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A subject that comes up regularly is whether or not a formal Computer Science education makes better developers. I&#8217;ve worked with people with various levels of education\/training<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Undergraduate Computer Science or Computer Engineering degree<\/li>\n\n\n\n<li>Graduate Computer Science degree<\/li>\n\n\n\n<li>Graduate of a boot camp or other non-academic programming workshop<\/li>\n\n\n\n<li>Self-taught programmer<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Overall, I have seen no strong correlation between programming ability and level of formal CS education. Honestly, I haven&#8217;t seen a strong correlation between any of the different ways of learning programming and programming ability. The best developers tend to become better given some time, no matter how they started.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Initial Knowledge<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Depending on how a candidate learned to program, they will have different starting knowledge. Some of that knowledge will be more important depending on the kind of programming they will be doing. Someone with a CS or CE degree probably has a better grounding in algorithms and data structures. If a problem would benefit from a particular data structure, they are more likely to start moving in the right direction.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That being said, a suitably motivated self-taught programmer can learn any topic taught at a university if they have enough determination and good materials. Between the internet resources and some classic books, you can overcome any initial knowledge deficit.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Learning<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">All of the best programmers I&#8217;ve seen are almost always learning. The field of programming is huge, and constantly changing. Although the fundamentals stay mostly the same, new data structures, languages, methodologies, and tools come along all the time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Some of these new things will be useful in a particular environment or industry. Some will not. Some will have an impact on the field for years, others will fade away after a couple of years. The really good developers will spend much of the time they are a junior or mid-level developer learning lots of techniques and tools to make themselves more effective and efficient.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As these good developers transition to senior, they will become pickier about the new things they spend time learning. By this point, they will have seen many <em>hot, new things<\/em> fade into obscurity, and a few that become core to their work. They will sample many technologies to get a feel for what might be worth learning, and ignore others that don&#8217;t seem worthwhile. They will also have learned that if they guess wrong, there will be time later to correct. As long as they don&#8217;t fall out of the habit of learning, they will always be able to adapt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A Good Mix<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The most important thing to realize is that a team benefits from having people at different skill levels, with different backgrounds. Your team would probably do best with one or two senior developers, a core of solid mid-level developers, and some junior developers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This gives the team the experience to be looking ahead for problems that are not yet visible. The junior developers should be asking questions to learn and keep the more senior people from getting complacent about what they <em>think<\/em> they know (or once knew). The mid-level developers will be able to keep the core of the development moving forward. Each group will also be acquiring the skills, knowledge, and experience to move to the next level.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Different backgrounds means that hard problems will benefit from multiple viewpoints. The discussions on what can be done and how, will almost always end up with better solutions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A subject that comes up regularly is whether or not a formal Computer Science education makes better developers. I&#8217;ve worked with people with various levels of education\/training Overall, I have seen no strong correlation between programming ability and level of formal CS education. Honestly, I haven&#8217;t seen a strong correlation between any of the different\u2026 <span class=\"read-more\"><a href=\"https:\/\/blog.gwadej.org\/programmer-musings\/2026\/09\/oomp-education\/\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,6,18],"tags":[418,414,130,189,303,419],"class_list":["post-1478","post","type-post","status-publish","format-standard","hentry","category-career","category-codecraft","category-programming-philosophy","tag-ability","tag-education","tag-experience","tag-learning","tag-skills","tag-team-composition"],"_links":{"self":[{"href":"https:\/\/blog.gwadej.org\/programmer-musings\/wp-json\/wp\/v2\/posts\/1478","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.gwadej.org\/programmer-musings\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.gwadej.org\/programmer-musings\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.gwadej.org\/programmer-musings\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.gwadej.org\/programmer-musings\/wp-json\/wp\/v2\/comments?post=1478"}],"version-history":[{"count":2,"href":"https:\/\/blog.gwadej.org\/programmer-musings\/wp-json\/wp\/v2\/posts\/1478\/revisions"}],"predecessor-version":[{"id":1480,"href":"https:\/\/blog.gwadej.org\/programmer-musings\/wp-json\/wp\/v2\/posts\/1478\/revisions\/1480"}],"wp:attachment":[{"href":"https:\/\/blog.gwadej.org\/programmer-musings\/wp-json\/wp\/v2\/media?parent=1478"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.gwadej.org\/programmer-musings\/wp-json\/wp\/v2\/categories?post=1478"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.gwadej.org\/programmer-musings\/wp-json\/wp\/v2\/tags?post=1478"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}