之前有个粉丝朋友私信问我:今年刚高考完,涉及字体侵权的知识产权与竞争纠纷,想报计算机专业,裁判文书数量已经达到了11585个,想暑假自学,其中进入到审判程序的案件数量有8430,应该怎么学?今天就针对这个问题好好聊聊,应诉率达到72.8%,之前也聊过自学这块说的也很全,有约28%的企业选择在开庭前就完成庭前和解。但在进入到审判程序的案件中,但今天针对学生这个全体好好聊聊。
学计算机专业学的内容是什么?
主要学以下五个方向:
1.C/C++语言
虽然你只有很小概率在工作之后用到它,量案件原告均能胜诉,但它依然无比重要。C Primer反复看,胜诉率高达89.4%。信息来源:知乎-刀豆网络没想到不久前一份《北京中易中标电子信息技术有限公司等侵害计算机软件著作权纠纷民事裁定书》的公开,然后一行行在电脑上敲出来。
C语言最难懂的是指针,让不少网友笑出声:户微软被起诉字体侵权。该裁定书显示,这个暑假掌握还是比较难的,原告中易中标公司诉称,内存是什么,被告微软公司、微软公司分产品侵害中易字库享有的计算机软件著作权,指针的本质是什么,程序为什么会崩溃,这些问题弄懂了基本就通了。
推荐以下C+书籍:
《C++ primer》《Essential c++》 《C++编程思想》 《effective C++》《more effective C++ 》《Think in C++》《C++ primer plus》《C++ coding standard》。
2、算法
算法挺难,但无论是学计算机专业还是未来找工作,它都无比重要。
推荐一本高中生都能看懂的算法书:《我的第一本算法书》
3.数据结构
数据结构的重要性相信不需要强调了,不仅是工作后必备的技能,如果未来要参加研究生考试也是必考科目和拉分项。入门的话推荐《话数据结构》,这本书诙谐有趣,在不知不觉中让你掌握了数据结构,再推荐一本稍稍难一点的《数据结构和算法分析》。
4.操作系统
只要我们使用计算机,就会和操作系统打交道,接受它的审核与反馈。很多“热门”的技术话题,背后都离不开操作系统。比如:
Nginx 的高并发性为什么能实现?
MySQL 的 I/O 性能到底怎样提升?
Redis 中经典的 Reactor 设计模式由什么技术支撑?
Node.js 的 I/O 模型长什么样?
甚至,在一个数十万行代码的项目中,仍然会遇到一些基础性的问题,比如内存为什么会泄漏,服务进程为什么会 dang 掉,文件为什么打不开等等。
5.计算机网络
如果你要入门 HTTP,首先最好书籍就是《图解 HTTP》了,作者真的做到完完全全的「图解」,书籍不厚,相信优秀的你,几天就可以看完了。
学前的准备都有哪些?
下载和安装
尽量去官方网站下载你要的软件。(过时的软件如vc++6.0显然没办法去官网下载了)很多搜索引擎都会将你要搜索软件的官网标注出来。看到出来的搜索答案列表后面跟个“官网”准没错,后面跟个“广告”就基本可以跳过了。有的没收录官网的,就需要用经验判断了。
在网页上找软件时,注意你点的东西是不是一张图片,而且这张图片的角落还写着“广告”两个字。如果是,这个显然是不能下载你想要的东西的。
下载站里面,如果遇到什么高速下载器下载,通通无视掉,只管找普通下载的渠道。当然,现在很多下载站流行留百度网盘链接或者公众号扫码获取下载链接,这两者一般都是没啥问题的(不保证无毒),就是麻烦而已。
安装软件时,如果你看到是个啥下载器,建议直接关闭,重新找资源。
安装软件时不要一直点下一步,多注意安装界面每一步可以用鼠标打勾勾的东西,如果这些后面是些安装xxx的,去掉选中,就不会安装了。当然自启一般也都去掉比较合适,快速启动栏看需求。
安装系统
搞个虚拟机软件,试用几十天十几天都无所谓,反正安装系统要不了多久。
具体怎么找虚拟机软件,去各种论坛、博客、知乎之类的平台找资源就好。
后续在 windows 编程学过程中,也可以用虚拟机来完成一些比较“危险”的操作。
学会装 windows 之后,也可以试着装 Linux 甚至是 Mac 。
有些劝新人用 Mac 或者 Linux ,这没什么不好,但是多数人用 Windows 会更合理。如果你电脑用得很熟,上 Mac 或者 Linux 那肯定没问题。
然而很多课程上老师准备的课程资料只有 win 版本的,其他系统的可能要自己去找,而且还不一定契合课程,萌新会很痛苦的。
了解你的操作系统
很多时候,我们与其说用电脑做事,不如说我们在用操作系统做事。
事实上很多编程语言都会用到系统层面的接口,而操作系统本身的设计也是遵循许多有助于编程的原则的。
首先你要搞明白文件是个什么东西,文件和文件夹区别是什么,文件的后缀有什么用?
扩展一下,比如 MP3 和 m4a 都能播放音乐, MP4 和 avi 都可以播放视频, png 和 jpg 都可以显示图片……
你要明白剪贴复制之类的是什么意思,鼠标左键和右键有什么用,滚轮除了浏览网页还可以关闭浏览器标签页……
你要去接触你系统上尽可能多的功能,比如用 cmd 命令提示符来关机、用 Ctrl + R 来打开软件、使用 Win10 的搜索功能来查找文件和应用……
了解CPU、内存、显卡、硬盘等硬件有啥用。
不说精通,你至少要用电脑跟用纸笔一样熟练。
进厂的要求
要想毕业就进厂,本科拿到月薪15K以上,硕士拿到25K以上,做好以下这些很重要:
选定一门主攻的基础语言方向,比如Python、C、Java等,并真正攻克它;
算法和数据结构:数组、链表、二叉树、堆栈、排序算法、B+/B-树、DP(动态规划)等;
疯狂刷题,撒比算法题、Leetcode等等,都挺不错,刷起来
计算机网络:HTTP、DNS、ARP、TCP、IP、ICMP、UDP等;
操作系统:IO、存储器、多线程/多进程、同步机制、处理器调度及死锁、设备管理、通道等;
计算机组成原理:冯诺依曼计算机组成、计算机层次结构、计算机性能指标等;
多实践多上机,机房要常去
抓住一切可以实的机会,是否有实经历往往是厂给不给offer的分水岭
以上其实是厂面试官的考核范围,并且他们之间有前置知识点的相关性,简单点说:不会基础语言不会算法和数据结构,你肯定没法刷题,也没法看懂计算机网络和操作系统、组成原理等等。
重点强调下算法,非常重要,无论是读研读博深造还是通过厂的面试,算法都是必须的。
以上就是今天的分享,希望对家有帮助~
关注我,分享更多编程小知识~
微信公众号:C语言编程学基地