V2EX大牛的指点

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

first: 

我认识一些深圳、杭州、北京的朋友,他们往往更关注以下内容: 
1. 代码(包括注释)的规范性、可维护性 
2. 参与一些算法的研究与实现、开源库的创建与维护 
3. 对新技术的探索,包括但不限于:新框架、新思想、新工具 
4. 对 Github 上的作品极其认真负责,包括但不限于:良好的 commit 说明,干净的代码(实验性或已注释代码的不会出现在代码库中),以 feature 为单位进行代码提交、分支合并、bug 修复,对 Git 这种工作方式了如指掌。 
5. 探索多人合作的技巧,并能主动去寻找、求助新的解决方案。 
6. 对开源社群有深入的理解,知道开源不等于免费,以及知道什么该开源什么不该开源。 

我接触过很多像 LZ 一样的刚毕业大学生,如果 lz 不介意我想提一提我的意见: 
1. LZ 应该关注一下代码规范和设计模式。 
2. LZ 的作品太过于浅显,并不能体现你的核心竞争力。并且如果着重强调 ThinkPHP 可能会带来减分的效果(在圈子内你多了解一下就知道)。 
3. 楼主的 “ 熟悉 div+css 布局,可用 jquery 写简单特效,会使用 ajax ” 这有一种《精通CSS+DIV网页样式与布局》这种书的既视感,你可曾了解过 CSS3 Flex Angular.js React.js ?并且,如果你要搞非 MS 系的后端,Linux 是比必备技能,而不是可在 linux 下进行。# 记得刚入学时有个学长在某社团讲座中讲到 PHP 入门,开发环境要 WAMP 不会的来找我,呵呵,你入门为什么不试一试 `php -S <phpfile>` 命令呢? 
4. 我看到 LZ 的 Github 上的代码,提交了很多已注释的代码,如果你的注释有助于他人阅读那是可以的,否则你自己调试的内容不需要让别人知道。另外,你们知道 Git 中的 .gitignore 文件用途么?为什么会出现 ThinkPHP 这个文件夹?再另外,如果你的团队里都是中国人,请使用中文写 commit,并制定团队规范(比如,我们就是采用 行为 + 功能修改 + (可选)涉及 API 变动简述(包含对应文档地址)) 
5. 最好能 在简历中说明你的团队工作经历,表明你已有与人协作的能力。并且能利用 Google StackOverflow 查找英文资料。很多团队很看重这个。 
6. 对于把 Github 当成团队代码库还不用私有仓库的行为,你们不怕有人看过你们的代码然后让你们的网站挂掉么?用 coding.net 不也免费么。好吧,Github 果然是世界上最大的同性别交友网站,哈哈。但这不是开源。另外,适当使用各自开源工具,可以成倍提升工作效率。 
P.S. > 你们的代码不写测试么? 
P.S. >> 大学里打 LOL Dota2 么? 

~ 花了 20 分钟看了你的东西,并写下这些,只为了帮助 LZ 并无恶意请围观朋友勿喷。

second:

1. 一直不明白为什么现在很多企业要求 PHP 开发者有 HTML CSS JS 能力,现在不是前后端分离了么,这是要全行业招全栈工程师的节奏么。所以,我建议 LZ 应该深入研究一下 计算机网络 操作系统 设计模式 PHP代码优化 数据库等知识,这才是一个后端程序员正道。(对于有志于从事外包行业的同学,可以关本页了 ~ 多说都是泪,那段时间几乎每天要去安慰我那朋友,槽点太多) 
2. 学生时代,大多数人写的最大的项目大概也就是课设、帮老师做外包。所以,对于真正大项目(10w行以上)缺乏(完全没有)了解。对于 MVC 软件架构 设计模式 软件工程 这些名词,完全没有概念。简略说一下我们团队的代码结构,更明确的完全前后分离的 MVC : 
* 前端:Angular.js + Android + iOS => 公用一套 RESTful API 
* 后端:(注:以下功能只是重要部分,不是项目根目录下的文件) 
— View 视图:负责生成 API 
—Controller 控制器:复制将各个接口组合起来,传递给 视图 进行数据渲染(格式化后输出 JSON) 
—Handler 处理机:被控制器调用,复制对数据进行加工 
—Logic 业务:被控制器调用,负责处理业务相关(例如调用其他内部、外部 API 等) 
—Model 数据模型,其中有分以下两个子层: 
—— Data 数据包装层:对数据库相关操作进行封装 
—— ModelDefine 数据定义层:通过 ODM 或 ORM 进行定义 
— Lib 工具库:封装各种常用的公共功能,使接口统一易用,如日期格式化、随机数产生、字符串校验 
— Opt 平台其他软件封装库:封装其他中间件的功能,如 Redis RabbitMQ 等 
— Dev 开发工具:包括代码强制分析、执行测试、性能分析等等 
— Test 测试:包含 功能测试、单元测试、集成测试、性能测试等等 

看,实际生产用途的项目是很复杂的。并且我们内部有一个 109 条的强制性规范(Python 的),从代码格式、命名定义、功能分割、基本语法优化等方面限制每个人。这样的好处是每个人的代码都是整洁的,每个模块都是去耦合的,可以分开单独测试。LZ 可晓得测试驱动开发? 
我是3年前接触的 PHP,在写过一些项目后去年初成为了 PHP 一生黑 (哈哈 ~)但,PHP 很少会对代码进行编译器级的优化(对比 Java 、V8),多人开发大项目时也容易对项目结构失控。并且,由于入手很简单,你可能遇到无数代码写得令人发指的队友(你见过实习生 完全不会 PHP 边学边做边往生产SVN中提交代码 么?外包公司。。。)这还不包括…… 

但有人说,这是都是工作之后才可以懂得的,要求大四学生完全熟悉这个是不是过分了?不好意思,我大三就已经从各自 blog 里把这些知识补齐了。这就是我一直说的,我们这些科班出身的和培训班出来的有什么区别?因为我们知道,什么是科学,什么是工程。科学:基本知识的深入理解并可以运用于实际是工程师的基本能力;代码的易读、规范、健壮是必须的,而不是高手才能掌握的。某天,技术领导说我们要利用 TCP 的特点和新出的长连接规范去优化 API 的性能,这时我们不应该傻掉;某天,产品说要加搜索自动补全的功能,我们可以用树型数据结构来很简单实现。敲代码培训几个月谁都会,我女友是学金融的,她还会用 Python 处理计量经济学上的问题呢。 
所以,我之所以是回答这么多,是因为我看到现在有太多人想通过掉代码获得月薪上万的收入,太多人想通过互联网创业来一夜暴富。敲代码这个行业很有意思,你可以很容易一个人干4个人的活,也很容易被别人问候你全家人 ~ 最近的帖子如证 http://www.v2ex.com/t/211378 
(写易读的变量名是品德,写注释是美德,写文档是公德,写了易读的变量名有写了注释还写了详细的文档并让我维护你的代码 哦 您是大恩大德) 

最后弱弱说一句,希望 LZ 不要不高兴也不要受打击,把自己沉下来,放下 LOL Dota2 每天学习 10 个小时左右,深入学习基础知识。如果想进大公司多学习算法 数据结构 网络 操作系统 方面的知识,如果想进创业团队,学习设计模式、数据库、软件架构,多写一些曲折婉转(大误,其实是高度抽象)的代码,如自己写框架(一定要脱离业务)写 ORM 并完善其文档(这点很重要,在小团队写好文档你队友会爱上你的),这样大四再去工作也不迟。 

科班出身的工程师必备知识:(个人观点欢迎讨论、补充) 
《深入理解计算机系统》《现代操作系统》《计算机网络——自顶向下方法》 
PHP 高级语法,PHP 代码优化技巧,《代码整洁之道》 
《深入浅出MySQL:数据库开发、优化与管理维护(第2版)》 
软件工程 《敏捷开发的艺术》测试驱动开发 RESTful 《大型网站技术架构》 
完全在 linux 下工作,习惯命令行,并会用各自工具,比如 git docker Vagrant ssh 等等的。 
使用 PHPStorm Xdebug Composer PHPUnit PHP-CS-Fixer 等 现代化的工具辅助你开发 

(又是半个小时 ~ 哈哈 ~ 欢迎提问) 
~ ~ 其实,我也是山东的 ~ 哈哈

third:

额,前辈算不算,应该是同龄人吧。我虽然自己业余玩过很多,但谈得上做可以严谨工程项目的大概只有 Python 了。你说的前端是指的 Web 端么,我们也吧 Android iOS 叫前端。Web 的话依我的看法,当下前端开发者应该慢慢学会放下对 jQuery 的依赖,Angular.js 和 React.js 是两种思维很独特的工具,并且适当培养在实际项目中自己的思想(如为什么说“声明式的代码更适合表现 UI 层”这类问题(我们在项目中就使用了很多自实现的声明式的 DSL (SQL 、HTML、CSS 都是应用最广的声明式代码)))。另外,现在的前端开发模式与十年前不同了,分毫不差的完成设计师的图纸是基本要求,但更讲究: 
前后端分离、 
* 规范化(了解业界规范,如 AMD、REST 等)协作(文档、注释)、 
* 模块化(无论 UI 还是 JS,都不断抽象形成公共库)、 
* 工具化(就是使用 node gulp 等工具)、 
* 敏捷开发(极限开发 TDD BDD 等)、 
* 新技术(HTML5 ES6 Tyescript)。 
总体来说,主要还是需要四点能力:1.思考 2.抽象 3. 懒(善用工具)4.学习速度。不过,前端相比后端要简单很多,但优秀的前端工程师却是严重的供小于求的状态(各个创业团队基本都是处于跪求前端的状态,所以我们采用的方式是去 themeforest 购买模板然后套用、修改 T_T)。

非常感谢 v2exer Feiox,感谢你宝贵的时间和经验

转载于:https://my.oschina.net/jasonwung/blog/494690

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python-实现动态web服务器

# encodingutf-8 import socket from multiprocessing import Process import re import sys# 设置静态文件根目录 HTML_ROOT_DIR ./htmlWSGI_PYTHON_DIR ./wsgipythonclass HTTPServer(object):def __init__(self, application):self.server_socket socket.socket(socket.A…

Android中shape的使用

本人在美工方面一直是比较白痴的&#xff0c;对于一些颜色什么乱七八糟的非常头痛&#xff0c;但是在Android编程中这又是经常涉及到的东西&#xff0c;没办法&#xff0c;只有硬着头皮上。 Android中常常使用shape来定义控件的一些显示属性&#xff0c;今天看了一些shape的使用…

PHP遍历数组的几种方法

这三种方法中效率最高的是使用foreach语句遍历数组。从PHP4开始就引入了foreach结构&#xff0c;是PHP中专门为遍历数组而设计的语句&#xff0c;推荐大家使用。先分别介绍这几种方法 PHP中遍历数组有三种常用的方法&#xff1a; 一、使用for语句循环遍历数组&#xff1b; 二、…

Jmeter集合ant进行操作

1、下载ant包 地址【http://ant.apache.org/bindownload.cgi】 2、解压后&#xff0c;配置ant的环境变量&#xff0c;如下图 3、修改jmeter/extras中的build.xml的文件 代码如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?><project nam…

五种常见的 PHP 设计模式

设计模式只是为 Java™ 架构师准备的 —— 至少您可能一直这样认为。实际上&#xff0c;设计模式对于每个人都非常有用。如果这些工具不是 “架构太空人” 的专利&#xff0c;那么它们又是什么&#xff1f;为什么说它们在 PHP 应用程序中非常有用&#xff1f;本文解释了这些问题…

linux常见命令的常用方法示例

本文涉及命令&#xff1a;date,clock,hwclock,cal,ls,cd,pwd,tty,whereis,which,stat,echo,shutdown,halt,reboot,poweroff,who,w,whami部分命令结果等同&#xff0c;合到一起示例一、Date 打印或设置系统日期和时间1、date &#xff1a;查看当前系统日期和时间2、date %a:查看…

Day-17: 网络编程

---恢复内容开始--- 现有的互联网通讯方式&#xff0c;是服务器端的进程与客户端进程的通信。Python中进行网络编程&#xff0c;就是在Python程序本身这个进程内&#xff0c;连接别的服务器进程的通信端口进行通信。 互联网协议上包含了上百种协议标准&#xff0c;但是&#xf…

计算机应用基础教程作业脑图 车辆工程学院 冯大昕

转载于:https://www.cnblogs.com/FengTang/p/7553055.html

EasyDSS高性能流媒体服务器前端重构(五)- webpack + vue-router 开发单页面前端实现按需加载 - 副本...

为了让页面更快完成加载, 第一时间呈现给客户端, 也为了帮助客户端节省流量资源, 我们可以开启 vue-router 提供的按需加载功能, 让客户端打开页面时, 只自动加载必要的资源文件, 当客户端操作页面, 切换功能模块, 触发页面路由变化时, 再去加载相应需要的资源. 本系列博客的前…

解密阿里云七武器之高性能消息服务ONS

2019独角兽企业重金招聘Python工程师标准>>> 7月22日&#xff0c;首届阿里云分享日上&#xff0c;阿里云正式对外发布了企业级互联网架构解决方案&#xff0c;该服务由EDAS应用框架、ONS消息队列、DRDS分布式数据库组成&#xff0c;能有效解决企业上云后网站过载、性…

windows服务器下的ftp server搭建

软件下载链接&#xff1a;http://pan.baidu.com/s/1eQJbmUY ftpserver1.下载后打开。2.运行安装3.安装目录选择。这里我选择安装在C盘的FTP目录下&#xff0c;直接填写即可。这个安装目录可随意设置。4.安装启动。查看使用教程&#xff0c;添加用户名&#xff0c;设置密码&a…

WordPress获取当前分类ID的四种方法

WordPress获取当前分类ID的四种方法 时间: 2015-01-05 所属栏目: Wordpress教程 作者: WP管理员之家 关键词: wordpress,分类ID 关注热度&#xff1a; 4,346 次 (1条) WordPress获取当前分类ID的方法有很多&#xff0c;今天我来给大家总结一下吧,wordpress主题定制专家-WP管理…

EditPlus3 添加 PHP代码格式化

https://www.jb51.net/softs/23113.html 整合PHPCB到EditPlus&#xff1a; EidtPlus&#xff1a;工具》配置用户工具…》添加工具&#xff1a; 菜单文本&#xff1a;PHPCB 命令&#xff1a;浏览到PHPCB程序。 参数&#xff1a;--space-after-if --optimize-eol --space-aft…

1-17

今天很慵懒啊&#xff0c;啥事也没做&#xff0c;把高精度复习了一遍&#xff08;hdu1002&#xff09;。 首先俩字符串数组输入&#xff0c;然后按字符串的长度逆序转到整形数组里 &#xff08;主要是为了把数值的最低位移动到数组的最低位&#xff0c;方便进位&#xff09;&am…

FTP下载导致Zip解压失败的原因

情形&#xff1a;网关通过FTP下载快钱对账文件时通过Apache下commons-net的commons-net-3.5.jar进行封装&#xff0c;对账文件中有中文和英文的文字,大部分情况下能够下载成功&#xff0c;而且也能解压成功。但是偶尔会出现下载了zip的文件&#xff0c;但是解压失败的情况。解决…

zabbix通过JMX监控Tomcat及一些报错

软件包下载地址&#xff1a;Wget http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.11/bin/apache-tomcat-7.0.11.tar.gz#安装jdk:Mkdir /usr/lib/jvmTar xf jdk-7u45-linux-x64.gz -C /usr/lib/jvm#在profile追加以下内容 Vim /etc/profileJAVA_HOME"/usr/lib/jvm/j…

C++入门经典-例8.1-类的继承

1&#xff1a;继承是面向对象的主要特征&#xff08;此外还有封装和多态&#xff09;之一&#xff0c;它使得一个类可以从现有类中派生&#xff0c;而不必重新定义一个新类。继承的实质就是用已有的数据类型创建新的数据类型&#xff0c;并保留已有数据类型的特点&#xff0c;以…

有意思的PHP代码块-面试经典_无需整理

为什么80%的码农都做不了架构师&#xff1f;>>> 不使用PHP自带反转函数&#xff0c;将字符串反转。//不用自带函数将其反转 方法一 $str "This is PHP"; $strArr explode( ,$str); $count count($strArr)-1; for($i$count;$i>0;$i--){$revStr . $s…

iOS开发之UITableView中计时器的几种实现方式(NSTimer、DispatchSource、CADisplayLink)

最近工作比较忙&#xff0c;但是还是出来更新博客了。今天博客中所涉及的内容并不复杂&#xff0c;都是一些平时常见的一些问题&#xff0c;通过这篇博客算是对UITableView中使用定时器的几种方式进行总结。本篇博客会给出在TableView中使用NSTimer或者DispatchSourcer中常见的…

CentOS查看每个进程的网络流量

所需工具nethogs 安装&#xff1a;yum install -y nethogs 使用&#xff1a;nethogs eth0 sudo nethogs -s //按接收流量大小排序 如上图&#xff0c;PID一列就是进程的PID&#xff0c;PROGRAM就是显示进程或连接双方的端口号&#xff0c;前面红框是服务器的IP:端口&#xff0…