Letter
I don't know if my teacher remembers me, just when I was a sophomore, I wrote two letters to you because I felt a lost future. After 21 years of study, I found the direction and confidence. From the original confusion into the current a little doubt, so write down this letter again.
I am a university software outsourcing major students, this year the school is a junior. At the beginning of the two o'clock, I did not know the training program of this major, and now I am fully aware of all the courses and teaching programs that we have arranged in our university for four years. Presumably, we specialize in developing courses, from the Sql,javase foundation of the freshman sophomore, to the Android development, to the Html+css+js&dom+jquery front-end development, as well as the Java EE, including the servlet, that will be learned JSP and SSH framework. In general, it is a training program that focuses on Java orientation. (Of course, there is software engineering) and the Professional foundation courses are very few, compared to a professional, we canceled a number of electricity, computer composition, architecture and a series of hardware courses. Basic courses only open: Data structure operating system computer network discrete Mathematics. It's just the four doors, exactly. In fact, this is a few courses, I also feel that only learned some fur. To my great dissatisfaction, the school canceled many experimental courses, including the operating system experiment class. This purely theoretical test-oriented learning, I still think it is very meaningless, most of the students are the only source of learning is the exam before the exam and focus.
At the beginning of the big two o'clock, I was sure I had found some direction. Not only the professional courses are very serious, other basic courses are also required to be motivated. Compared to my other classmates, I am learning science and engineering in the logical thinking gradually showed an advantage, for most of the students are very headache of engineering mathematics such as line generation, probability theory and other courses, I even have the ability to test to full score. I gradually found that I am a logical thinking and mathematical thinking are relatively strong students, for me to learn something rarely exist learning problems, hinder most from the insistence or not, as well as teaching resources are limited.
Like many students, I also pay great attention to professional development courses. The teacher said that learning to practice, and then learn the process of re-practice I have been in mind. Sophomore year in general, I have paid less time to study. Programming ability has a small improvement, and laid a relatively strong Java foundation, (specifically from object-oriented IO multi-threaded Swing to network, reflection mechanism, etc.) after learning HTML and other front-end knowledge, This holiday I also began to learn the technology of Java EE and 3 hours a day to ensure that the amount of code for future learning to prepare. Although I only have access to a few projects, I know that development experience is not a one-off, I have always been a very patient attitude to learning technology. So becoming a software architect was the biggest goal of my life, and although it was a far-fetched thing for me at the moment, I swore I would fight for it with lifelong learning and long hours of hard work. (preferably to my class teacher, first specialized in the web direction, go back to the Big data direction)
I was listening to MIT's online computer class The other day, and I found that many of the underlying principles of computer hardware were unclear and even unheard of. After online inquiry, I gradually learned that the original want to go farther in the direction of software, hardware knowledge is necessary. So I thought of a new learning route, I want to start from the basics, to re-systematize the learning of hardware knowledge, and I am learning the course at the same time. Because of the school's curriculum restrictions, I did not have the opportunity to enter the school's hardware laboratory, and I think that learning hardware principles, still have to practice-based, which undoubtedly gave me in the learning process caused by obstacles. I'd like to ask the teacher:
I have heard that a good software master must master the underlying knowledge, so that more clearly understand the operating system, so as to do a good job in software. Does this claim make sense? What is the knowledge that a good software engineer has to gain a deep understanding of the underlying or other basic knowledge? If I study hardware or underlying knowledge now, what courses does the teacher want to recommend? Or is it the right sequence? The most important thing is to study these courses, the overall need to use what method to learn?
I think my ability can fully control more curriculum knowledge, in fact, this year my biggest change is mainly based on the ideals and beliefs of learning motivation to the interest-based learning motivation. The second half of my plan to fire full, focus on strengthening the professional and English learning efforts. Wait until the end of the year, and then transfer my main battlefield to the task of postgraduate examination. I hope that the teacher to my current situation again straighten out the direction of learning, I am grateful for this, thank you!
Reply
I am very pleased with your progress! The self-mastery of the university stage is crucial, and the university is prepared for those who are willing to change and be independent.
For your professional abolition of the basic class of hardware courses, I know the hidden behind the school, not much to accept it. And as you, but also want to know a little more, still can rely on self-arrangement, in fact, this is the normal learning, is the embodiment of personalization.
In recent years, there is a view that computer majors should be able to view computers from a system-wide perspective, rather than splitting them apart and learning clearly and separately. So, since you have a heart, appropriate cloud to explore, a good thing.
Specific learning resources, you can go to NetEase Cloud Classroom "Computer professional curriculum system" to see, there is a computer composition principle lesson can be consulted. In addition, to read, you can choose the classic "in-depth understanding of computer systems." Your goal is the software architect, from the software developer's point of view to understand the system, not necessarily from the very bottom of the circuit experiment, our study also pay attention to cost, related experiments, can use the form of software, in the program design, can reflect the hardware characteristics of the same arrangement, so that the computer can be "very comfortable" To perform, or in some places, to be taken for granted, or potentially dangerous, as a result of familiarity with underlying principles, can be seen at a glance, or not problematic for you. Can be used to design the experiment, reflecting the underlying principle of "doing secondary school."
I have not done any work on computer systems, which is for reference only. You can learn some other ways of learning about hardware.
Believe you can do better!
Software engineering students who want to learn their own hardware