Closed evanwolf closed 7 years ago
It seems a bit of confusion. First of all communication is important for any person who lives on social environment, works, interact with other people. But this repo is about science, not about corporative development or open source programming. From my POV this is out of scope
@stereobooster I understand. My issue is really: is the scope just the math/coding/science part of being a computer scientist or is it everything you need to be effective as a computer scientist once you leave the classroom? Is it academic training or professional training?
It can happen I misinterpreted your words. If it is the case please correct me.
What do you mean by professional? The only reasonable way to interpret it is to name it engineer, because there can be highly/low skilled engineers or academics. It is the same way as some people confuse simple and easy.
I tried to formally define what is the difference between academic (or scientist) and engineer and failed. Highly skilled engineer is also scientist and vice versa.
This division in academic/professional is some kind of "folklore taxonomy". It is rather based on feelings, than formal definition (in my POV). And this confusion leads to opinions that computer science is something for academics and coders doesn't need it. Obviously, knowledge about Turing Machines won't help you to code CSS. But question here is coding all you need from life? Computer science is about science and science is the special way to view the world: it is about asking questions, about doubts, fact checking, free thinking, about understanding nature of things. There are some knowledges that won't help you to solve immediate problems, but will make you understand more about surrounding reality, like Godel incompleteness theorem or Turing proof of undecidability of halting problem etc.
In general programmers need more of science thinking. It is absence of science thinking makes programmers to blindly repeat programming mantras, without understanding what they mean. It leads to choosing programming technology by hype rather than fact checking.
Soft skills are indeed very important for work as well as growth for Software professionals, bankers, managers, salesman and any other white-collar job. Although it was strictly not the intent for this list to be only academic courses, however I guess it has turned out to be a decent list leaning towards academic side, so it would be better to let it be.
As software professionals, we should strive for cohesive modules than monolithic structures That is why in parallel all-things-java was created for Java professionals, Scalable-Software-Architecture for topics on architecture and scalability, technical-interviews for technical interviews and the-talks for general topics. (My apologies, I am not great at awesome names, I just go with first name I can think of and proceed with it in interest of time.) Merging different things together would have resulted only in mess.
Certain talks on domain driven design, clean code and other topics can be found in Scalable-Software-Architecture. I believe soft-skills and other software professional topics would be great idea for a list that can focus well on them and do a great job.
As a team sport, software development calls for some social skills. Would be interesting to see training threads on
The courseware focuses on how. But a professional computer scientist should know more about why, the context in which you work, the people that make your work glorious or horrible, the everyday risks and perils affecting your engineering choices.