某呆需要的资料-沉底
IT新闻、动态
这里面一般不涉及技术,主要是一些科技类创新的文章
程序员一般逛的几个网站
主要都是直接和技术/开发类挂钩的网站
国内
- csdn:全球最大的中文IT社区(里面的技术BBS和技术博客是他的主打)
- 博客园:一般都是原创的IT开发文章
- 开源中国社区:上面都是开源的新闻/项目之类的
- 其实还有一些:51cto,iteye,chinaunix
国外
- github:全球最火的源码托管网站,如果应聘者在上面有自己的开源项目一般都是比较牛的
- Apache基金会:上面全是开源项目,并且这些项目的质量都很高,每个项目一般都是以一个团队或者公司在维护的
- stackoverflow:国外非常火的技术问答社区(但是我没去过-_-)
程序员的一些职场生涯
去这些网站看看可以看到程序员的求职现状和心态 以及他们的想法
招聘渠道
个人感觉招IT类比58,赶集之类的靠谱多了
- 内推网:主要是做互联网招聘的,并且好多都是内推的
- 拉勾网:和内推网差不多,但是一般都是社招
- 猎聘网:号称是招聘高端互联网人才
- 北邮人论坛:这在这找应届生非常合适
- 还有国内的csdn,博客园和开源中国都也有自己相应的招聘版块,也都可以发布信息
关于岗位问题
开发岗
注:测试开发和运维虽然不是纯开发,但是现在一般都是自动化了,所以也是需要写一些自动化的代码的
前端
故名思议该岗位就是做前台的开发了,这里的前台主要为web前端,类似PC客户端,APP客户端的前端一般不设前端岗
涉及的技术标签有:
- html:这个是前端的基础,现在最新的叫html5了,也叫h5
- css:这个也是web开发必懂,用于做网页样式的,新的浏览器都支持css3,还有现在关于css有一个新潮的less框架
javascript:JavaScript 被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用
上面的3项技术是前端最基础的,也必须懂的,一般面试的话他们就是基础,同时如果会php,python,nodejs之类的这些服务器端脚本语言更好,还有再会一些UI设计方面:比如photoshop,fireworks之类的加分,一般一个优秀的程序员刚刚提到的那些技能都会,并且都比较熟练
好了,这里将javascript(简称js)展开一下,js是最基础的web前端脚本语言,但是为了加快开发速度,所以很多开发都不是基于原生的js来进行,而是使用js库来开发:
- JQuery:它几乎可以说是最火热的js库,非常轻量级,而且免费,并且基本兼容全部浏览器
- angularjs:这个也是非常新潮的js库,将整个web前端开发模块化了,并且还支持数据源的绑定,近两年兴起的
- RequireJS:貌似是一个js的模块加载器
- NodeJs:普通的js只能运行的浏览器的执行引擎上,而使用nodejs可以直接运行在pc端,并且与js的语法是一样的,同时还可以写高性能的后台并发服务,它非常火。。
-
最后列一些不错的web前段开发框架:bootstrap..看这里介绍的比较好
总结:做前端可以发现需要会的东西很杂,很多,他们的主要难点就是写出兼容性好的页面,比如兼容各个浏览器(IE,chrome,firefox,360安全等),还有需要适应更重尺寸(各个尺寸的电脑屏幕,手机屏幕,平板屏幕。。。),,同时,前段还得提供友好的人机交互。。。
一些面试题(看看大概了解面试官的需求):
后端
该岗位很好理解,就是做后台的开发了,那什么是后台开发呢?
比如在你在12306上买了一张票,点击买的一刹那,12306后台就会接到你买票的请求,可能会将请求放入一个队列,负载均衡会陆续将队列中的数据分发到一个实际机器上处理,然后改机器上的后台程序会判断是否存在这张票,判断当前用户是否允许买这张票,然后写入log日志,生成订单信息,然后将这张票给锁住,接着你在前台就会到付钱的界面,你去支付宝付了钱之后,12306的后台会得到刚才刚才订单的付款信息,进行校对确认,无误之后写入数据库,写入日志,购票成功,然后你就可以前台看到付款成功了,这一系列在后台处理的事情就是后台开发了。
后台开发一般的语言:
- c/c++:非常高效的语言,但是由于开发成本较大,所以一般如果不是特别追求效率的话不会使用该语言,或者一个项目中可能只有部分特别追求效率的模块会有c/c++来写
- java:面向对象语言,市场占有率极其高(国内的bat以及其他二三线的互联网公司的大部分产品都是使用它来开发的),它最大的特点就是开源产品众多,开发速度快,有非常多成熟的解决方案,还跨平台。
还有提一下就是关于JavaWeb的开发,很多的开源组件:ssh(struts+spring+hibernate),ibatis,mybatis等
- c#:定位于java一样,但是由于他是受windows平台的限制,大公司用的并不是特别多,但是中小型公司用的很多,所以市场占有率也是相当的高。
与JavaWeb不同,c#开发的web一般就分为webform和mvc,但是也有很多模仿java的组件出来。。比如nhibernate之类的。
- python,ruby,php:好多公司也会采用这些脚本语言作为他的后端
scala,go,nodejs:这类计算是脚本语言,但是国内外有好多公司用他们来开发
高性能
的后端总结:浅层理解后台开发就是向数据库读取数据(所以一般需要了解各种数据的特点和用户,比如myslq,oracle,sqlserver,mongodb之类的),然后提供给web前端或者其他app之类的前端来使用。深层理解的话就是在理解线层的基础上还需要考虑高性能,分布式,可靠的安全性,一致性非常多的问题,所以相对来说后端比前端的要求更大,深度也更加深。
测试开发
做测试也是有一定的要求的,不再是像以前一样在产品界面上点来点去就好了,现在一般都是自动化测试,所以也是需要写代码的。。好的测试开发是一个高产品保障,所以该需求也是非常大。
关于测试开发一般有:
- 单元测试:表示对代码里面的单个方法(函数)的可用性进行测试,经典的测试框架有junit,nunit之类的
该测试一般由开发人员来完成
- 功能测试:表示对产品中某个功能进行测试,就比如一个12306买票的方法,该功能的测试点有:买完之后 会发系统邮件、短信、还有数据库中会添加记录、缓存中会清空这个缓存等,经典的测试框架有testNg,Selenium等
该测试一般要求对整个产品有个比较全面的理解,还有产品上线的时候一般是需要该测试有个较高的通过率
- 还有白盒测试和黑盒测试
测试是产品中非常重要的一个环节,如果是需要写代码的话要求比开发人员第一点,但是工资也会相应第一点,所以一般情况下测试比较难招人,处于一个比较尴尬的局面。
- 单元测试:表示对代码里面的单个方法(函数)的可用性进行测试,经典的测试框架有junit,nunit之类的
运维
关于运维,你可以理解为项目的网管,整天盯着监控屏幕,看有没有什么流量异常,数据异常之类的,这个是不出问题的时候,其实运维的作用就是防止问题的出现或者在问题出现的时候尽快解决,所以压力也还是蛮大的。
现在产品的生产环境一般都是*unix,所以比较了解*unix平台,了解他的性能提高之处,网络原理、安全等,然后还要回各种脚本(shell、php、python),同时最好还需要会各种工具(grep、sed、awk、tcpdump、strace)
还有现在的运维好多也是自动化运维了,所以有时候也要自己开发运维工具面试题:
移动APP开发
这个岗位是近两年兴起来的,基本像样点的公司要得招这个岗位
- Android开发:主要用到Java
- IOS开发:用到object-c和switf
- windowphone开发:用到c#(但是这个岗位真不多)
- 算法/数据挖掘
随着大数据的发展,这个岗位的需求越来越大,但是要求也是异常的高,一般至少都是硕士以上,需要会机器学习算法、自然语言处理、图像识别、推荐预测等方向。
- Hadoop/Spark相关的工程师
上面的是偏算法的,这次的是偏工程的,主要是会Hadoop/Spark来对大数据进行相关处理,或者直接对这些分布式平台进行二次开发(这个要求就很高的)
非开发岗
- 运营
关于运营,额,你就把他理解为龙飞的工作吧-_-i