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;本文解释了这些问题…

jquery 点击事件

$("#id").click(function() {alert(alert);});

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:查看…

Leetcode: LRU Cache

题目 Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and set. get(key) - Get the value (will always be positive) of the key if the key exists in the cache, otherwise return -1.set(k…

Day-17: 网络编程

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

启动MySQL报错

当在linux系统中启动mysql服务的时候service mysqld start时 报&#xff1a;Another MySQL daemon already running with the same unix socket. 解决办法。 原因多个Mysql进程使用了同一个socket。 两个方法解决&#xff1a; 第一个是立即关机 使用命令 shutdown -h now 关机&…

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

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

UML该元素的行为为基础的元素

&#xfeff;&#xfeff;Behavioral thingsare the dynamic parts of UML models. These are the verbs of a model, representing behavior over time and space. In all, there are three primary kinds of behavioral things. 行为元件是UML模型的动态部分&#xff0e;它们…

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

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

可工作的软件胜过面面俱到的文档

正在看一本书&#xff0c;书上讲到一个观点&#xff0c;“可工作的软件胜过面面俱到的文档”&#xff0c;这一点我一直都很认可&#xff0c;在平时工作中也是依据这一观点不写详细设计文档就开始编码&#xff0c;设计过程只做比较粗略的概要设计&#xff0c;但是涉及到数据库设…

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

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

php动态数组的用法

// 创建连接 $con new mysqli($servername, $username, $password, $dbname); // Check conection if ($con->connect_error) {die("连接失败: " . $con->conect_error); }$sql "SELECT * FROM table limit 0,1000"; $result $con->query($sql…

MySQL划重点-查询-条件

查询的基本语法select * from 表名; 消除重复行在 select 后面列前使用distinct 可以消除重复的行 select distinct gender from students;一、条件 使用where子句对表中的数据筛选&#xff0c;结果为true的行会出现在结果集中语法如下 select * from 表名 where 条件;select *…

高数.........

高数70你敢信&#xff1f;&#xff1f;&#xff1f;临考前各种复习做卷子 各种认真 考试的时候感觉题目也都能做 尼玛连上平时分才给我70&#xff1f; 特么我是不信 打电话问问老师 如果没录错果断重修 郁闷转载于:https://www.cnblogs.com/ahu-shu/p/3520249.html

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管理…