发新帖

西电大佬第四期-李康-腾讯MIG后端工程师-bat offer收割鸡

[复制链接]
2711 0
李康 — 腾讯MIG后端工程师

640.webp (2).jpg

本文建议阅读时间10分钟

  • 自我介绍

李康,西安电子科技大学电子工程学院本科四年级,喜欢鼓捣各种软硬件技术,爱看书,爱⾳乐,喜欢造轮⼦和侃⼤山。从大三实习招聘到大四秋招,曾拿到过百度,阿⾥里里,腾讯等互联网企业的offer,各个到手offer岗位横跨后端,算法,嵌入式驱动,和开关电源。

知乎 ID: 李Brooks  。

  • 个人技能

• Linux系统编程和⽹网络编程
• Linux内核开发
• C/C++
• 数据库
• python
• 做app的时候学过安卓和java
• 曾经⾃自学过javascript , html和css
• 框架和其它⼯工具略略去

  • 大学经历

⼤一, 2014年9⽉ 获得TI省一等奖,主要负责开关电源硬件部分。

⼤二, 2015年9⽉ 获得全国电赛国家二等奖,挑战杯国家二等奖,主要负责算法和编程

大三, 2016年7⽉ 前往腾讯膜各位大佬,顺便学习点新姿势

现在 赋闲在家研究一点数据库原理

  • 后端学习经历

C++学习技巧

C++怎么学?大家都在抱怨C++很难,从C++ primer⼊门熟悉语法和基本使用,这个大家都很清楚,但更进⼀步往往难住了很多人。

难点:
第一,编译器做的工作难以捉摸。
第二,C++贴近底层部分难以把握,出了很多贴近底层的bug都难以调试,最具代表性是的是内存问题。

所以要学好C++,至少要做到 :
1. 学习C++首先要知道编译器如何实现那些特性的
2. 底层机器如何运行的
3. 使用一些行之有效的规则来规范自己的代码

解决方案:

对于第一点我推荐看一看《深入探索C++对象模型》,第二点推荐大家看一看CSAPP,第三点建议大家看一看《effective C++》。另外,人人头疼的内存泄漏问题,只要遵从rule of three和积极使⽤用RAII都可以得到很好地解决。   
其实我推荐学习C++的同时,如果精⼒允许的话去学习java,对比看看这两大语言各⾃面临的问题和解决的问题,以及它们解决问题的方案是什么,在对比中理解学起来反而会更有效果。

Linux学习技巧

Linux怎么学?作为一名后端工程师,Linux几乎是不可避免地要与之打交道,这世界上九成以上服务器都运⾏在Linux上。要学好Linux必须要学好操作系统原理基础,然后去体验。一下Linux系统编程。

可以先看一看《Linux程序设计》,不推荐用APUE和UNP入门,虽然说它是圣经,但它不是入门⽤的,可以先看完《Linux程序设计》做完了书上的例子后再看。

熟悉了Linux系统之后可以看看《Linux内核设计与实现》,了解一下基本原理,如果觉得自⼰还有精力可以再去阅读一下《深入Linux内核架构》,以后如果再遇到问题,就去读源码好了。

其实学会用Linux,配置配置服务器这没什么难度,难点在于对Linux的实现原理的理解, 多路IO复用怎么实现的?有哪些可供选择的方案?如何选择?AIO呢?零拷贝呢?Linux的进程模型线程模型是怎么样的?有什么优缺点?这样的问题太多了了,难以⼀一举例,虽然当下很多框架流⾏起来让后端开发变得简单了,但攻坚克难的时候会遇到十分底层而又细致的问题,这就是体现能⼒的地⽅。

201412303031419902792500.jpg

  • 给学弟学妹的话

一是“勿忘初心,方得始终”,二是“夫学须静也”。

许多人有一种错误的观念,认为代码写的越多就越能进步,但在我看来写代码只能发现问题和熟悉知识,学习知识还得系统地看书学习,然后写代码练习。

记得以前书法老师对 我说过“倘若你不知道隶书的起笔行笔收笔的规则,不知道字形字体的特点,你写一千个字,也只是一千道横杠而已”。

坦⽩说我认为成为程序员的难度并不在于知识有多难,难点 在于知识系统庞大,学习知识都是枯燥无味的,总需要静下心来啃书。这个行业的技术更新换代很快,框架年年层出不穷,语言火了一茬又一茬。但万变不离其宗,OOP那一套⻄方的理论,从C++和java到python难道就行不通了吗?倘若计算机系统组成原理能弄明⽩,关于虚拟机的知识怎么会一看就懵?     

希望每一位学弟学妹在锻炼实践能⼒的同时,更要静下心来打好基础,重视基础理论, 才有可能进而学习更具有深度的知识。一个厉害的人,是看他能解决什么难题,而不是看他能写多少代码。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表