3.1 time management and study strategies
While time management and study strategies are important, stress management is also critical to success in any endeavor. Time management and prioritization can be helpful; making lists not only helps organize tasks but it can be therapeutic and provide a sense of accomplishment. Depression and anxiety are psychological disorders with symptoms can arise due to prolonged exposure to stress, so being aware of stressors and when to step back and spend some time on self-care is important. Time management may include setting time aside for oneself, friends, and family.
3.2 PROJECT MANAGEMENT
Nick Jenkins promises his readers will be able to deliver a project successfully after finishing “A Project Management Primer.” Two key sections of this primer stood out to me: “Ten Axioms for Success” (pp. 4-5) and “Building a team” (p. 38).
The ten axioms for success highlight the necessity of getting to know the people central to your project–your team and your stakeholders. In addition to this, the iterative cycle of project development is also stressed. Most problems will not be solved in a single sweep and will require testing and refinement.
Expanding on getting to know one’s team, Jenkin explains how team building is essential to a project. This requires building a positive rapport with team members–being honest, fair, loyal, and trusting. The relationship with your team can make or break a project.
Overall, this primer provides a helpful overview of how to manage a project, whether you are a manager of a team or a managing your own solo project. In any case, you must remain positive and organized.
3.3 RE: What Every Computer Science Major Should Know
Matt Might, Professor of Internal Medicine and Computer Science at the University of Alabama at Birmingham, maintains a living document that attempts to explain “What Every Computer Science Major Should Know.” The skills, to date, include: communication skills, a mastery of physics and math including statistics, multivariate calculus, and discrete mathematics, familiarity with command-line computing and IDE-less programming, the ability to perform basic system administration tasks, mastery of a variety of programming language types including assembly, an understanding common cryptographic protocols and the layers of protocols that underly the Internet, an understanding of how to maximize user experience, knowledge of common data structures and algorithms, and an understanding of the theory of computational complexity, computer architecture, operating systems, software testing, visualization, parallelism, software engineering, formal methods of development, graphics and simulation, robotics, artificial intelligence, machine learning, and databases.
While I agree that the skills Might lists are important, not all computer science students enter university with the same opportunities and backgrounds–certainly not the same affluent background as Might himself, whose father was the president and CEO of Cable One. It may be unfeasible to expect all students to master this exhaustive list of skills during four years of education. Many of these skills can be learned or further honed after a Bachelor’s degree is attained. Once a student has earned a degree–learning does not stop. It seems excessive to expect a student to learn and master everything he lists as prerequisites to getting a good job.
One can only surmise that it is Might’s extraordinarily privileged background that contributes to his arrogant tone when he asserts that “if these students have a fundamental mental barrier to accepting an alien syntactic regime even temporarily, they lack the mental dexterity to survive a career in computer science.” He completely dismisses students who may experience initial difficulty in understanding Lisp as inherently incapable of doing computer science. Lisp is one of the oldest high-level programming languages, and it is notorious for its arcane, parenthetical syntax.
Both Might and prospective computer scientists may want to append one additional, fundamental quality to their repertoire: a growth mindset–a notion that intelligence can be developed through perseverance.