题主是一名非名校的CS本科学生,现在遇到了一些困惑,想请教一下热心的segmentfault网友。因为不是985/211名校,现在题主所在的这所学校我感觉学风非常不好,第一是整体水平太低,一学期结束了,班上都没几个人能用C语言写出链表来,第二是ACM校队也是没有什么价值,C9的学生喜欢膜来膜去的还情有可原,但是我们这种学校都互膜成为一种风气,非常的不自在,学不到有价值的东西。
其实一开始自己是学JavaEE的,当时也用Hibernate和Struts做了一些XX管理系统,后来想自己做个小网站,学Django然后入了Python的门,可能是并没有深入JVM等的学习,没有理会到Java的跨平台和在大型项目的优点,后来觉得更加喜欢Python,所以这学期前半部分时间都在学习Python。直到后来刷知乎,看见一些大V列出的CS学习的清单以及看了王垠大神的博客,12月份跑去学Scheme和汇编去了,放弃了Java和Python,前阵子看见轮子哥开班后,还打算去学C++。
现在2016将要过去,我也在重新思考我自己,觉得自己不能继续这样下去了,要不然到了大三大四,什么都懂一点,但是什么都不精通,但是在国内找工作又是按照语言来分类的,所以我觉得自己还是应该选择专攻一个方向,现在我想我还是选择Python吧,因为Java的话,4大框架用起来太重了,而学习Python则可以自己做一些小项目。
因为学风不好,反正我现在学的东西都是自己自学的,学校没有提供给我任何帮助,我想从寒假开始自己开始专攻Python,然后暑假去找实习。
关于实习想请教segmentfault网友们一下。我在知乎看到别人列出来的清单,觉得至少要1/2年自己才能刷完那些算法题,看完csapp,scip,dragon book这些书籍。但是我在segmentfault/v2ex上面经常看见一些网友学了3/4个月就去找工作了(主要是前端/Java),工作1年后还能年薪上万。我觉得这非常的不可思议,几个月学完JavaEE的4大框架,nodejs/react/angular我觉得这是可能的,但是不是说面试最重要的是算法题吗?,从我看这些网友的博客与回答,似乎他们很多人甚至连基本排序算法都不是很了解。我收集了很多Java方面的面经,真的几乎每一份面经都说了解算法是最重要的,Leetcode刷题是必须的。我没有什么社会经验,也没有任何的鄙视意味,难道除了BAT/网易这些大型公司,对于普通的互联网公司难道真的他们面试不考算法题吗?但是为什么几乎所有的面经里面都这么强调算法题?而且我看一些尚学堂之类的培训机构,他们的培训机构的学习计划里面只有JavaEE框架的学习,没有任何相关算法的学习,这到底是怎么回事呢?
现在看些这些网友几个月就拿到offer的案例后,我觉得自己现在什么都学一点,就编译原理/Lisp这些很酷的东西学的再好又有什么用呢?因为不是名校出生,以后去找工作/实习投简历都是只能填写一个语言岗位,真的太不值了。所以现在计划完全专攻Python,同时也发现牛逼的人,比如requests库作者的GitHub里面的项目也只有Python,鸟哥也是专攻PHP。虽然Python被吐槽为胶水语言,因为入门确实很容易,但是我觉得学好了,要是还能往GitHub项目做出一些贡献的话,也是很不错的。虽然有点强迫症JavaEE想把spring/spring mvc学完再抛弃,但是觉得自己越来越不喜欢学校的风气了,长此以往会得不到进步,想早点离开这个地方,反正现在CS四大的公开课/coursera/stackoverflow什么资源都有,把听力练好了,实习工作中也可以重新学习CS核心课程。我觉得自己对CS是非常热爱的(只是学校风气太差了),以后工作实习中也不会只写业务代码,满足现状,还是会重新学习底层知识,往更大的平台发展。
写着写着好像跑偏了,下面还有一个问题就是想请教一些segmentfault网页能不能推荐一些Python实习公司?我好有个奋斗的方向。对于实习我看的一些招聘要求好像都是要求大三/大四才能去,大一/大二能有先例吗?国内使用Python的公司我了解到的目前主要有三家:知乎, 豆瓣, 扇贝,单论框架的话知乎是tornado,扇贝是django,豆瓣是自己造轮子,但这些都无所谓,我可以都学习一遍。BAT基本招收985学生,我们这类本科希望不大而且年龄大小所以基本不抱任何希望了。实习工资/工作地点的都没有任何问题,只要能找个地方锻炼能力就行。
描述的有点乱,我主要想问的问题就是:
毕业前自学几个月就能拿到实习offer的人,面试的时候难道真的不考算法吗?
除了知乎/豆瓣/扇贝这些公司,明年暑假Python实习还可以去哪里?任意地点都行,接受大一/大二学生。
重复第二个问题:有哪些具体的互联网公司可选?
补充
如果是Java的实习也行,还是有一定的基础,离明年暑假还有6个月,我也会做一些东西充实GitHub的repo。
拜托各位网友留言或者私信一下,不胜感激!
滚回去学CS好了,练好英语多上coursera/stackoverflow,2016年的最后一天勃学让我意识到了自己的进一步失败。
和我情况一样的朋友,我们可以多充实github弥补学历的不足,如果功利一点,Python相比其他语言,star数目更加容易上涨,学风不好不是借口,练好英语上四大名校的公开课也是一样的。
@huangzhuolin的回答很理性和我现在的发展道路是一样的,@萝莉控吐槽勉的回答虽然不是完全同意,但是他和@prozsh的对话让我也收益很多。
经过一些总结,我的问题完全在于非名校的自卑感,除了一些耳熟能详的公司BAT/网易/京东/新美大/豆瓣/知乎等名企觉得其他公司都不算公司,又担心自己进不了,或许一开始就算进了一些小公司也没有什么大不了的。正如楼下一位答主所言,学历会随着工作慢慢淡化,不可能一辈子都做写代码的程序员,其他方面的投资也是很重要的。我缺少社会阅历才会抱有一些上面的错误想法。再说自己的学历也没有差到那么差劲的地步,10%~20%之间也并不用那么绝望。
感谢各位朋友的关注/私信/回答,这类型问题纯属题主个人情感的宣泄,不同的人经历不一样,回答不能完全相信,而且程序员相比其他岗位由于缺少交往,在互联网上强答和表达欲望比较强。
此号等同于注销,建议管理员关闭这类型问题,对于别人有误导性。祝新年快乐,学好英语,打好CS基础,不要跟风,曾老师和勃学家让我这样的失败人士学到了很多,程序员并不是那么的天真。除了一个人孤零零编程,现实人生还有其他很多美好的事情。如果不是爱好的话,网红时代或许还有很多比替别人打工编程更好的赚钱方式,固定的程序员思维很可怕。
一位大神指导我说即使像segmentfault这样本心很好的公司,活跃答主的水平也不是很高,在国内的这样的环境,即使我这样的初学者和伸手党本流量暂时提高了,但是也很难找到更好的赢利方式,吸引真正的高手。程序员还不如去知乎和微信赚钱,国内很少有真正玩技术的人或者公司,所以还是练好英语多去stackoverflow上面得到免费的大神的回答,不交智商税,我这么说是希望segmentfault关闭我这个问题。
此号等同于注销
伊谢尔伦2017-04-18 10:12:13
No matter which path you take, please make sure you work hard and learn something every day.
ringa_lee2017-04-18 10:12:13
Learning English well is the key. If you don’t understand, just google and read Stack Overflow. Zhihu is just for entertainment. Don’t treat it as a place to learn CS. If you want better career development advice, you can ask on Quora. There are some Zhihu The so-called big V is just sensationalizing and deceiving xxx.
The most important thing is to think about what you want to get and why you are doing the internship, rather than doing it one after another. I personally think that the first and second years of college are mainly about laying the foundation. What is the style of study in college and what do you care about others? Just do your own thing.
P.S. I’m a sophomore, and I’m at 985, a low-ranking school in the imperial capital... The above are some of my own opinions. Welcome to communicate.
PHP中文网2017-04-18 10:12:13
1. School is just a springboard. The key lies in the individual, not the reputation of the school. You need to make good use of the school's resources, such as computer rooms, laboratories, tutors, etc.
2. During the undergraduate period, what you need to focus on is analog electronics-> digital electronics-> composition-> logic-> operating system-> data structure-> algorithm-> network-> database- > Distributed Systems-> (If you still have time) Multimedia instead of wasting time on programming languages and internships.
3. Programming languages that must be mastered are: Assembly -> C -> Java -> SQL. But language is just a tool, you just need to be able to use it, there is no need to get into trouble.
4. In addition, if you want to do Web, or game development, etc., you need to master additional things, but I won’t mention these, so even if you learn these things, you must also learn the above basic content.
5. Strength = theory + practice, so just reading books is not enough, you also need to do a lot of supporting experiments. But when weighing time, whether it’s preference versus theory or practice, it doesn’t work. Being too theoretical will make you a nerd, being too practical will make you a white hat.
6. There are many simple questions, don’t underestimate them. Such as installation. From the method of installation, you can tell whether a person is a novice or an expert.
7. For many questions that are too difficult, first go to Baidu, Google (you need to learn to circumvent the firewall), QQ group, Zhihu, and segmentfault to ask questions. If the question is stuck for 3 days, give up and skip it.
If you can learn these things to a proficient level (a score of 90 or above in the exam), then when you graduate from college, try to analyze several mainstream issues such as 12306, Taobao Double Twelve, and the ticket grabbing system, from the circuit layer to the cross-platform Physical machines, cross-computer rooms and even cross-hemisphere distributed system levels, string these levels together to do a system analysis, if you can reach this level, then 4 years will not be wasted.
In addition, let’s introduce a few levels:
If you can pass every course without cheating, then it will not be difficult to find a job worth 4k to 8k in Beijing, Shanghai and Guangzhou after graduation.
If you can reach 90 points in each course and can join the laboratory, then it may be possible to work in a BAT or a first-tier state-owned enterprise after graduation.
If you have been studying for 4 years as an undergraduate, from 6:00 to 24:00 every day, and you can still communicate with your colleagues on professional issues like me even on New Year’s Day and New Year’s Eve without winter or summer vacation, then after graduation, you will be able to study at BAT. It is not difficult to estimate a core architecture or something.
There is another level. You can lead a graduate student and get an offer in your freshman year. You can get a job invitation from a first-line company by just writing a few opinions on a certain issue on Zhihu. However, this level requires a lot of chance. Only a few elites can achieve it, so I won’t mention it.
Finally, don’t waste time on various languages, and don’t waste time on internships. You should focus on the core computer courses: operating systems, data structures, algorithms, networks, databases, and distributed systems.
迷茫2017-04-18 10:12:13
Although the questioner is asking to close the question, in fact, when I saw this question, I felt that the questioner came to the wrong place. To discuss the direction of CS learning, you should go to Zhihu, to find internship companies, you should go to Lagou, etc., to find out how to interview and take the written test Go to Niuke.com, SegmentFault, etc., which is just a website that solves practical technical problems. Some answers say that the level here is not high, it is all framework problems, and even error reporting problems. This is very scientific. Doesn’t StackOverflow have such problems? But People can delve into the underlying principles from simple error reporting questions. The level of the responders here is indeed not enough. This is the general environment.
But let me answer the first question simply.
School recruitment requires algorithm assessment, but it is basic algorithm ability. The requirements vary depending on the position and the company. Basic data structures and basic algorithms can be written on a whiteboard, unless you are an algorithm engineer or a specialized data mining algorithm. Category.