| 寄托天下 | 2015-04-21 16:14 | 我要评论 | 浏览8931次 |
最近还是需要攒人品,写个Lz找工作的经历帖。供需要找编程工作的人参考。Lz本身水平不高,有错误的地方也请大家指出。本科是学CS或者SE的大神可以忽略此帖,Lz的水平肯定不及你们。
1. 基础知识篇
如果你本科不是CS或者SE的,准备换行当码农的。至少需要掌握基础的算法、数据结构、1-2个编程语言、软件工程、数据库、操作系统。(注:下面列出的是最最基本的要求)
算法与数据结构:需要熟练掌握各种数据结构的特点、时间和空间复杂度、适用的场合等等,包括map、list、tree、stack、queue等。(hash有很多公司喜欢问。包括expected complexity, collision, separate chaining,还有就是arraylist和linkedlist)。各种排序的算法的复杂度,需要熟练的写出各种排序算法的代码,其他算法如recursion、DP也需要掌握(可以不用掌握图形算法)。网上有很多online course。上完了去刷leetcode的简单和中等难度的题。刷完基本可以应付一般的公司的面试。
编程语言:主流的包括java、C#、 C++、 python、javascript。需要掌握至少1门,了解object oriented programming的概念和特点。
以java为例。需要了解四大特征 Abstraction, Encapsulation, Polymorphism, Inheritance。Interface和abstract class,内存管理(garbage collection),多线程和同步、异常处理等。
软件工程: 需要了解design pattern,lifecycle,和testing的内容。了解基本概念。
数据库: 会写简单的SQL语句。了解关系型数据库的概念。schema, table, view, trigger。normalization, denormalization. 3NF, BCNF。different joins。 Transactions, deferent isolation levels。
操作系统:了解操作系统的基本概念。问的最多的是process和thread的区别。另外还有 scheduler, paging, socket, what is deadlock, concurrency control, multi-threading, synchronization, DMA
网络知识: 这个问的不多。一般会问TCP和UDP。还有when u click a website, what happens。
另外,需要知道linux的常用命令。git/svn的常用命令。
2. 投简历篇
简历需要海投,各种资源能用都要用上。Lz用学校的系统也拿多面试。网上海投也拿到面试。还有就是内推,多认识人很重要。
找工作的时候最好把简历放在自己的linkedin上。Linkedin里有recuiter会看到你的简历,你投了某个工作之后,公司也会看你的linkedin。把自己做的项目的源代码放到github上,公司会看。
学校的系统里一般会有很多资源,而且公司也都是诚心想招人的那种。有很多同学都是通过学校的系统找到工作的。
找工作的网站:这里推荐indeed、glassdoor、Monster。Lz有一些面试就是海投拿的。不过海投的回复率也会很低,好多公司不一定是很急的招人,看到没什么工作经验的new grads可能就直接pass了。另外有些急着招人的公司会招立马能上班的。Lz接到好多电话,问了earliest available time之后就没有然后了。所以毕业了拿到工签以后工作会好找一些。Lz因为想早点工作赚钱(人穷志短),所以没毕业的时候只能硬着头皮海投。
3. 面试篇
面试分为HR的电话面。技术电话面。现场面(onsite)。HR的电话面一般会问一些general的问题比如earliest available time,然后会跟你核对一下简历。也会问一些简单的技术问题,HR只负责记录,然后交给technical的人看。Technical的人决定你是否进入下一轮。
技术电话面是technical的人打电话给你,一般问一些简历上的问题,和一些小的技术问题。一般会问OOP的概念、简单的算法和数据结构的概念。有的时候会给个网站要你在上面code。所以接电话要用耳机,腾出手来做别的事。
现场面:一般的软件公司没有服装要求,穿的越屌丝越好。如果是去银行,一般需要穿正装,入职以后可以随便一点(银行的程序员穿什么的都有,但是HR要求正装,Lz有同学差点因为服装问题被拒)。到了公司就是技术人员问问题,一般会问简历,然后问一些概念性的问题,最后是白纸上写code。(有可能可以用伪代码写,但是一般会要求用你最熟悉的语言。需要注意格式,尽量减少bug。写完了自己可以对着测试一遍。要求高一点公司会要求用尽量优化的算法。写完会继续讨论提升效率的方法)。
原帖作者:jyttwc6590
原帖链接:http://bbs.gter.net/thread-1821346-1-1.html
©详细内容版友讨论请看论坛原帖,本文文字内容版权归寄托版友jyttwc6590所有,不代表寄托天下立场。未经原作者允许,谢绝其它平台使用整体或任何部分的内容!
- 相关阅读
- 寄托热选
