URL:
http://localking007.bokee.com/1587943.html
给学计算机的和喜欢计算机的同学的忠告- -
最近我贴了很多关于计算机专业的贴子,不过总体感觉比较散,在这里总结一下,表达以下我的观点,适用对象:计算机科学与技术的同学和其他专业想转计算级专业或者极其爱好计算级专业的同学。
一、给计算机专业的同学
1.首先请你热爱这个专业。只有这样,你才会从抽象的理论中找到实实在在的快乐。如果你不热爱她,或者只因为这是个热门专业,那么极力要求你放弃这个专业,因为计算机是一把双刃剑,学好了你会飞黄腾达,学不好你毕业后会极其痛苦,高不成低不就,没有发展潜力,如同学英语专业的人到了美国一样。
2.不要用功利眼光对待这个学科,这绝对不是点点鼠标就能挣钱的专业。不要去想做网站挣钱,不要想靠点击率增加广告,这个在4年前已经过时,如果你现在仍然这么想,千万别说出来,因为我会觉得你很土。计算级专业的成就感总是伴随着身体上的痛苦而来,肩周炎,颈椎病,眼睛干涩,掉头发,腰椎间盘突出,关节炎,不夸张,这么帅的我工作了两个月以后发现开始掉头发了。
3.搞明白计算机“科学”与“技术”的含义。做网页,做图片,做flash,玩游戏,上网,听歌,录mp3,搞电影字幕,装windows,改注册表,为软件做皮肤……这通通不叫计算机科学与技术,如果你是计算机的学生,会做以上事情,那是你应该的,不会做,也没什么丢人的,我们需要的不是让别人称作“高手”。
4.明确你最终的专业方向是软件还是硬件。方向是网络?网络不是专业方向。网络是最优秀的软件工程师、最优秀的硬件工程师与最优秀的通信工程师的智慧结晶。如果你是软件方向,请你在学精一揽子数学、数据结构、算法设计、数值分析、汇编语言、操作系统、编译原理、数据库原理、软件工程之类课程后,仔细的听一听硬件课程,他对你有用。软件工程绝对不是背背就能过的课,计算机理论可能是一个人就能研究出来,软件工程是成千万网软件工程师几十年来失败的教训凝结成的结晶,请认真听课。不要问我应该学什么语言,计算级专业的人必须具备任何语言1小时上手的能力,最起码要在10分钟把 "hello world"做出来。如果说有必须学的两种语言,那他们是c++与java,学他们不是在学语言,而是在学thinking in c+ +,thinking in java,一个是软件的基础理论,一个是面向对象的基础理论,从来没有人听说过“thinking in basic”。如果你说c++过时了,那么千万别告诉别人你的名字,因为很丢人。山科大的老师只会教给你c,不会教给你++,所以不要被他蒙蔽,大胆的问他++,如果他不会,干脆换老师。学硬件的同学在认真听听以上课程后,学精除了政治以外的其他课程。
5.即使你学好了以上课程,我们仍然差得很远,我们只弄清学什么了,但是还不知道做什么。我们的课程设计太小儿科了,别对你在国外的同学说,否会被笑话,所以我们要尽可能的多做设计,别一个人们闷着头做,两三个人合作一个项目,不会交流的计算机人员30岁以后肯定会下岗。题目呢,尽量是一些简单的底层开发,可以去国外大学网站上搜一搜,要自信你一定能做出来,毕竟不是什么难题,而是我们应当具备的素质。
6.如果你对网络有意,在具备了一定动手能力后从协议或者底层硬件的角度去学习它。否则你是自甘从一名高贵的计算机专业人员堕落为做着沉重机械体力劳动的民工。对网络安全感兴趣,那么你就在学会使用各种工具的一个月后从编程的角度深入学习网络协议和操作系统吧!只会用工具攻击无知人员的漏洞是一种意淫的行为,如果乐此不疲,并到处叫嚷“黑客”,那么这种行为可以被称作“手淫”。网上呼吁中美、中日黑客战时,希望你安心学习课程,或者睡觉休息,或者去运动娱乐,不要给祖国抹黑。
7.正确对待认证。绝大部分认证不是高薪的敲门砖,而是你上岗前的智商水平测试。如果你考过了认证,别对别人说这个认证是垃圾,请告诉别人你在学习中懂得了那些知识,如果你没有懂得知识,那么你是个paper,认证不是垃圾,你是垃圾。如果你连认证都没考就到处喊它垃圾,那么你就亲自考考试试,考过了,懂了,那么你随便;如果过了但是不懂,认证不是垃圾你是垃圾,如果没考过,那么看这个贴子的所有人都知道你是什么了。MCSE、CCNA、CIW 等等都有它存在的意义,只要你有钱都值得一学,他们是最正规的知识来源,是经过理论、实践、时间与市场考验的产品。
二.给非计算级专业的同学的一点建议
1.热爱你的原专业,尤其是自然学课和基础学科,为了计算机放弃他们就如同为了10张一元钱扔掉了一张100元一样。
2.计算机是具有学术性和工具性的双重属性学课。架设一座计算级专业与你本专业的桥梁,那对两个专业都是做出了贡献,如果你真的很牛,把计算机学的很深很好,那么你真的值得尊敬。
3.再次记住做网页,做图片,做flash,玩游戏,上网,听歌,录mp3,搞电影字幕,装windows,改注册表,为软件皮肤……这些不是计算机专业,也挣不到钱。不要让浮躁余功利蒙蔽你的双眼,毁掉你光明的前程。
以上差不多都说完了,对学校的不满我就不说了,毕竟是一时的,虽然现在还很烂,但是将来会慢慢变好的,大家在痛骂学校的同时一定多给学校提出好的意见,多为学校的发展出力,将来谁成就了大事,别忘了回来,因为我们的孩子也许还会在这里上学,我们不能让他们再受苦受委屈。
谢谢大家!
URL:
http://localking007.bokee.com/1587943.html
Advice for Students Studying or Loving Computer Science
Recently I've posted many threads about computer science majors, but overall they feel rather scattered. Here I'll summarize and express my views. The target audience: students of Computer Science and Technology, and students from other majors who want to switch to computer science or are extremely passionate about computer science.
I. For Students of Computer Science Major
1. First, please love this major. Only then can you find real joy in abstract theories. If you don't love it, or just because it's a popular major, I strongly suggest you give up this major. Because computer science is a double-edged sword. If you learn it well, you'll have a bright future; if not, you'll be extremely miserable after graduation, being neither here nor there, with no development potential, just like English majors going to the US.
2. Don't view this discipline with a utilitarian eye. This is absolutely not a major where you can make money by just clicking the mouse. Don't think about making money by building websites, don't think about increasing ads through click-through rates. This has been outdated for 4 years. If you still think so now, don't even say it out, because I'll think you're old-fashioned. The sense of accomplishment in computer science always comes with physical pain. Shoulder periarthritis, cervical spondylosis, dry eyes, hair loss, lumbar disc herniation, arthritis... No exaggeration. After working for two months, even I, who is so handsome, started losing hair.
3. Understand the meanings of "computer science" and "technology". Making web pages, making pictures, making flash, playing games, surfing the Internet, listening to music, recording MP3, making movie subtitles, installing Windows, modifying the registry, making skins for software... None of these are Computer Science and Technology. If you're a computer student, it's what you should be able to do. If you can't, it's not a big deal. What we need isn't to be called "experts" by others.
4. Clarify your final professional direction: software or hardware. Direction is network? Network isn't a professional direction. Network is the crystallization of the wisdom of the most excellent software engineers, the most excellent hardware engineers, and the most excellent communication engineers. If you're in the software direction, after mastering a set of mathematics, data structures, algorithm design, numerical analysis, assembly language, operating systems, compiler principles, database principles, software engineering and other courses, carefully listen to hardware courses; they are useful to you. Software engineering is by no means a course you can pass by memorizing. Computer theory may be researchable by one person, but software engineering is the crystallization of the failure lessons of tens of thousands of software engineers over decades. Please attend classes seriously. Don't ask me which language you should learn. Computer science majors must have the ability to pick up any language in 1 hour. At least, you should be able to make "hello world" in 10 minutes. If there are two languages you must learn, they are C++ and Java. Learning them isn't learning languages, but learning "Thinking in C++", "Thinking in Java". One is the basic theory of software, the other is the basic theory of object-oriented. No one has ever heard of "Thinking in Basic". If you say C++ is outdated, then never tell others your name, because it's very embarrassing. Teachers in Shandong University of Science and Technology only teach you C, not C++. So don't be deceived by them. Boldly ask them about C++, and if they don't know, just change teachers. For students in the hardware direction, after carefully listening to the above courses, master all courses except politics.
5. Even if you've mastered the above courses, we're still far from being proficient. We've just figured out what to learn, but still don't know what to do. Our course designs are too childish. Don't tell your classmates abroad, otherwise you'll be laughed at. So we should do as many designs as possible. Don't just work alone. Cooperate with two or three people on a project. Computer professionals who can't communicate will definitely be laid off after 30. For topics, try to be some simple low-level development. You can search on foreign university websites. Be confident that you can definitely do it. After all, it's not a difficult problem, but a quality we should have.
6. If you're interested in network, after having certain hands-on ability, learn it from the perspective of protocols or low-level hardware. Otherwise, you're voluntarily degrading from a noble computer professional to a migrant worker doing heavy mechanical physical labor. If you're interested in network security, then one month after learning to use various tools, deeply learn network protocols and operating systems from the programming perspective! Only using tools to attack the vulnerabilities of ignorant people is a masturbatory behavior. If you're addicted to it and shout "hacker" everywhere, then this behavior can be called "masturbation". When the Internet calls for Sino-US and Sino-Japanese hacker wars, hope you study courses with peace of mind, or sleep and rest, or go to exercise and have fun. Don't blacken the motherland.
7. Correctly treat certifications. Most certifications aren't the golden key to high salary, but the IQ level test before you take up a job. If you've passed a certification, don't say this certification is rubbish to others. Please tell others what knowledge you've learned in the study. If you haven't learned knowledge, then you're a paper. The certification isn't rubbish, you are. If you haven't taken a certification and shout it's rubbish everywhere, then please take the exam yourself. If you pass and understand, then you can do whatever you want; if you pass but don't understand, the certification isn't rubbish, you are rubbish; if you don't pass, then everyone reading this post knows what you are. MCSE, CCNA, CIW, etc. all have their existence meanings. As long as you have money, it's worth learning. They are the most formal knowledge sources, products that have been tested by theory, practice, time and market.
II. Some Suggestions for Students of Non-Computer Science Majors
1. Love your original major, especially natural science courses and basic disciplines. Giving them up for computer science is like throwing away a 100-yuan note for ten 1-yuan notes.
2. Computer science has the dual attributes of academic and instrumental. Build a bridge between computer science major and your own major, which contributes to both majors. If you're really excellent, and learn computer science very deeply and well, then you really deserve respect.
3. Remember again that making web pages, making pictures, making flash, playing games, surfing the Internet, listening to music, recording MP3, making movie subtitles, installing Windows, modifying the registry, making skins for software... These aren't computer science majors, and can't make money. Don't let impetuosity and utilitarianism cloud your eyes and ruin your bright future.
That's almost all I want to say. I won't talk about dissatisfaction with the school. After all, it's temporary. Although it's still very bad now, it will gradually get better. While scolding the school, everyone must put forward good suggestions for the school and contribute more to the development of the school. In the future, if anyone achieves great things, don't forget to come back, because our children may still study here, and we can't let them suffer and be wronged again.
Thank you all!