JavaRush /Java Blog /Random EN /How to turn from an ordinary coder into a cool developer?...

How to turn from an ordinary coder into a cool developer? Learning Computer Science

Published in the Random EN group
The modern world of IT and software development is quite harsh - high requirements for the qualifications of coders, constant changes and growing competition force specialists working in this field to constantly educate themselves and develop. Continuous learning is required even in order to simply remain a sought-after specialist, because “getting behind life” is as easy as shelling pears. How to turn from an ordinary coder into a cool developer?  Learning Computer Science - 1In publications on JavaRush, we try to help readers fully develop and self-learn in order to become as competitive as possible in the tempting world of IT development. In today's article we will talk about self-education in a very broad discipline - Computer Science. We’ll look at what exactly is included in the concept of computer science (CS) a little later, but for now let’s try to answer the question: why, in fact, should a programmer learn CS subjects and strive to improve in this area.

Computer Science - why teach?

“Programming is not something you know. It’s something you can figure out.” Chris Pine, programming expert, author of books and tutorials. “In some ways, programming is like drawing. At first, you only have a blank canvas and materials. You need to use a combination of science, art and craft to figure out what to do with all this.” Andrew Hunt, author of the bestselling book The Pragmatic Programmer and co-author of the Agile Manifesto. It is not difficult to understand where we are heading. To become a really good programmer, or simply to rise at least one step above an ordinary coder, you need to have the broadest and at the same time fairly deep knowledge in various areas, in addition to the programming languages ​​themselves. And mastery of the disciplines included in the concept of CS is one of the first places here.

Computer Science disciplines

Let's look at what subjects are included in the field of computer science. To short descriptions of disciplines with reasons for studying them, we will add recommendations for the best book and the best series of free video lectures on the subject from, perhaps, the best English-language guide to computer science, written by Oz Nova and Myles Byrne, teachers at the School of Computer Science Bradfield in San Francisco.
  • Programming

    Programming is the basis and basic discipline of computer science; most students begin studying the CS course with it. The best CS programming courses will be useful not only for beginners, but also for experienced coders who may have missed certain programming concepts and models when learning it for the first time.

    Best book: “Structure and Interpretation of Computer Programs.” Authors: Gerald Sussman and Hal Abelson.

    And on JavaRush, by the way, the legendary Harvard course “CS50. Fundamentals of Programming” , fully translated into Russian.

    Best Video Lecture: Brian Harvey's Berkeley CS 61A

  • Algorithms and data structures

    Knowledge of the most common algorithms and data structures helps to solve various kinds of problems, and this is very important in any area of ​​computer science, including, of course, software development.

    Best book: The Algorithm Design Manual. Author: Steven Skiena

    Best Video Lecture: Lectures by Steven Skiena

  • Computer architecture

    Knowledge of computer architecture, that is, an understanding of how a computer actually works, is another important piece of the puzzle, without which attempts to build software designs and models often fail.

    Best book: Computer Organization and Design. Authors: David Patterson and John Hennessy.

    Best Video Lecture: Berkeley CS 61C

  • OS

    Almost all the code written by a programmer will be executed by the operating system, so knowledge of how the OS works is also an important element.

    Best book: “Operating Systems: Three Easy Pieces.” Authors: Andrea Arpaci-Dusseau and Remzi Arpaci-Dusseau.

    Best Video Lecture: Berkeley CS 162

  • Computer networks

    Little modern IT can do without using the Internet, so it is important for IT professionals to understand how the World Wide Web works in order to use its full potential.

    Best book: Computer Networking: A Top-Down Approach. Authors: James Kurose, Keith Ross.

    Best Video Lecture: Stanford CS 144

  • Mathematics for computer science

    Since computer science is essentially a branch of applied mathematics, knowledge of this subject will also be very useful in almost any profession related to programming. It will also give you a competitive advantage over those who do not master this discipline.

    Best book: Mathematics for Computer Science. Authors: Albert R. Meyer, Eric Lehman and Frank Thomson Leighton.

    Best Video Lecture: Tom Leighton's MIT 6.042J

  • Database

    Databases are a relatively new field in computer science, and there are still not many experts in it. Data is another key element of CS because it underpins most significant programs, but few people understand how database systems actually work.

    Best book: Readings in Database Systems. Authors: Joseph M. Hellerstein and Michael Stonebraker.

    Best Video Lecture: Joe Hellerstein's Berkeley CS 186 How to turn from an ordinary coder into a cool developer?  Learning Computer Science - 2

  • Languages ​​and compilers

    Understanding how programming languages ​​and compilers technically work allows you to improve your code and programming skills. It also makes it easier to learn new languages, which is also critically important for any developer in the long term.

    Best book: Compilers: Principles, Techniques and Tools. Authors: Alfred Aho, Monica S. Lam, Ravi Sethi, Jeffrey Ullman.

    Best video lecture: Alex Aiken's course on Lagunita

  • Distributed systems

    These days, most systems are distributed. Computers and programs are becoming more complex, and knowledge of distributed systems will be useful to ensure that your software runs correctly and smoothly.

    Best Book: Distributed Systems, 3rd Edition. Authors: Maarten van Steen and Andrew S. Tanenbaum.

    Best Video Lecture: CS 436: Distributed Computer Systems

Tips for Studying Computer Science

And finally, some advice for those who are planning to start studying CS disciplines. How to turn from an ordinary coder into a cool developer?  Learning Computer Science - 3
  1. Develop practical skills in CS disciplines

    One of the advantages of CS, like other IT courses, is that the theoretical skills you have just acquired can be immediately applied in practice. Don't forget about this and alternate theory with practice to achieve the best results.

  2. Don't procrastinate

    Computer science is a rather complex subject, the study of which is easy for few people, especially at first. That is why, when starting to study CS disciplines, you need to avoid procrastination - do not put off mastering theory, problem solving and practice until later, as this will not only make learning very long, but will most likely not be as effective.

    How to turn from an ordinary coder into a cool developer?  Learning Computer Science - 4
  3. Don't limit yourself to one course

    Don't expect to be able to get all the knowledge you need in a subject from one course, no matter how good it is. It is always best to consult at least several sources of information to gain a broader understanding of the subject.

  4. Find like-minded people

    Звучит слегка банально, но эффективно обучаться, How и делать многие другие вещи в жизни, лучше всего в составе группы единомышленников. Найти себе компанию для совместного изучения CS будет полезным по ряду причин. Это поможет учиться более эффективно, вместе решать задачи и проблемы, сравнивать с другими свой прогресс в обучении и навыки применения новых знаний.

  5. Учитесь писать слова, а не только code

    Еще один распространенный совет от многих экспертов, для тех программистов, которые изучают CS для улучшения своих навыков и повышения профессионального уровня: учиться писать (а не codeить), то есть складывать слова в предложения и составлять из предложений тексты. Этот навык достаточно важен для любого разработчика, а его отсутствие будет мешать прогрессировать не только в изучении компьютерных наук, но и в других аспектах программирования How профессии.

Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION