【转载】我是如何在自学编程9个月后找到工作的

0

昨天在我在国外网站 reddit 上看到一篇文章,作者分享了他自学编程 9 个月后找到工作的经历。文章不到一天就得到3千多赞,2百条回复。我看了下内容,非常中肯,其中有不少建议也是我在编程教室屡次提过的。所以我连夜翻译了出来。原文略长,我做了适当的缩减。另外加上了一点我的想法(括号内斜体字)。虽说国情有不同,但本质是相同的,对想要入行的朋友很有参考价值。

长话短说,2017年12月,我处于人生的十字路口,无论是继续完成看不到尽头的化学硕士学位还是重新寻找自己的出路都令我感到纠结。那时我写了一些代码(也就几百行 Python),感觉不错。我决定靠着积蓄来学习编程,直到找到一份开发的工作。

回顾这个漫长而艰难的旅程,我想分享一些经验,它是如何开始以及如何结束的。我的观点没有特别的顺序,虽然我会先写一些我认为最重要的。

1)设定一个非常精确的目标。我是指现实的目标。这是你旅程中最重要的方面,你需要对终点线有清晰的认识。你学习编程,是因为想解决一些实际问题吗?也许你想要自动处理你工作/生活中的一些任务,也许你想破解游戏,也许你出于好奇心,也许你喜欢学习新事物,又也许你是一个想开发应用却没有资金的企业家。而本文中,我主要针对想要通过学习编程找工作的角度来谈。

2)如果你的目标是找工作,就盯着就业市场看,而不是 Twitter 和 Medium 上的热点。还记得第一点吗?你必须设定一个非常精确的目标。诸如“我想成为一名开发人员并从事游戏行业”这样的目标就过于模糊。你的首要任务是什么?是寻找一个真实的开发工作,还是在游戏行业工作?如果你在游戏行业找不到工作怎么办?你的城市没有此类公司,或者你达不到游戏公司的要求怎么办?其实不论你学习哪种编程语言,我敢说将来某一天这些知识都可能用在游戏开发上,只要这是你的目标。你将需要学习大量的新东西。但是你有解决问题的能力和编程知识才能迈出第一步。

你是一名自学成才的开发人员,不是 MIT 的优秀毕业生,找到一份异地的工作会更难。我在2017年12月犯了一个错误:我认为首要任务是找到一份前端开发的工作。但我没意识到,在我的地区 C#/php/Java 的工作与前端 JS 工作的比例为9:1。因此,请查查你所在地区的公司,看看它们的职位和要求。

“无限滚动”与“分页”设计的使用

0

“我应该选择“无限滚动”还是“分页”的形式来展示我的内容呢?”这是不少设计师存在的困扰。其实,两种方法展现形式都有各自的优点和缺点,在本专题内容中我们将概述这两种方法并决定我们的项目应该使用哪一种。

无限滚动

无限滚动是一种允许用户通过滚动浏览大量内容而不刷到页面最底层的技术。当你向下滚动页面时,这种技术将会持续地刷新页面。这虽然听起来很诱人,这种技术并不是一种适用于各种网站和app的万能解决方式。

无限滚动方案

优点:

1.用户参与和内容发现

当你使用滚动作为探索数据的主要方法时,它极有可能会让用户在你的网页上停留更长时间,从而增加参与度。随着社交媒体的普及,大量的数据正在被消费。而无限滚动提供了一种有效的方式来让用户浏览信息的海洋,而无需等待页面的预加载。

无限滚动几乎是所有探索界面的必备功能。当用户没有定向搜索某一特定的内容时,他们就需要通过查看大量的条目才能够找到他们感兴趣的东西。

WordPress 启用CDN http回源

0

服务器优化固然很重要,nginx的ssl负载能力也是一个大问题,这次选择的方案是把ssl抛给CDN处理,回源全部使用http,这样可以大大提高WEB服务器的负载能力。

但是WordPress会对ssl、域名做相应的判断,以及自动跳转。

这就会导致https访问http回源的情况下,页面将会多次重定向导致页面无法访问。

首先来看看wp是如何判断是否https的

function is_ssl() {
    if ( isset( $_SERVER['HTTPS'] ) ) {
        if ( 'on' == strtolower( $_SERVER['HTTPS'] ) ) {
            return true;
        }
 
        if ( '1' == $_SERVER['HTTPS'] ) {
            return true;
        }
    } elseif ( isset($_SERVER['SERVER_PORT'] ) && ( '443' == $_SERVER['SERVER_PORT'] ) ) {
        return true;
    }
    return false;
}

关键变量在$_SERVER['HTTPS']上,编辑wp-config.php加入下面代码

/**
 * SSl修正。
 *
 * https 使用 http 回源
 */
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
  $_SERVER['REQUEST_SCHEME'] = 'https';
  $_SERVER['HTTPS'] = 'on';
}

CentOS7 升级PHP 7.2

0

查看当前已安装的php包

yum list installed | grep php

如果有已经安装的php包,先删除他们

yum remove php-common

安装 epel 并设置源

yum install epel-release
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

安装 PHP-FPM

yum install --enablerepo=remi --enablerepo=remi-php72 php-fpm

安装 需要的拓展

yum install --enablerepo=remi --enablerepo=remi-php72 php-mysql php-gd php-xml php-mbstring php-mcrypt php-redis php-opcache

启动服务并设置开启自启动

systemctl start php-fpm
systemctl enable php-fpm

PHP imagettftext(): Could not find/open font 错误

0

症状:验证码上只有背景图没有文字

Warning: imagettftext() [function.imagettftext]: Could not find/open font in ***.php on line **

解决方案:处理掉中文目录!!

网上搜索到的答案大多是字体文件目录不对或者相对或绝对路径方面的问题,写下这段文字给后面需要填坑的朋友。

借助 etckeeper 使用 Git 管理服务器配置

0

Linux/Unix的用户对/etc目录都是再熟悉不过了,在这个最重要的目录中保存了大部分软件的配置信息,借以实现软件的配置以及整个系统的启动过程控制。对于Windows用户来说,可以把/etc目录视为Windows中的注册表,只不过文件化了,可管理了。

这么重要的/etc目录,如果其中的文件被错误编辑或者删除,将会损失惨重。etckeeper这个软件可以帮助实现/etc目录的持续备份,借用分布式版本控制工具,如:git、mercurial、bazaar、darcs。

那么etckeeper是如何实现的呢?以git作为etckeeper的后端为例进行说明,其他的分布式版本控制系统大同小异。

/etc目录Git化。将会创建Git库于目录/etc/.git中,/etc目录作为工作区。
与系统的包管理器,如Debian/Ubuntu的apt,Redhat上的yum等整合。一旦有软件包安装或删除,对/etc目录下的改动执行提交操作。
除了能够记录/etc目录中的文件内容,还可以记录文件属性等元信息。因为/etc目录下的文件的权限设置往往是非常重要和致命的。
因为/etc目录已经是一个版本库了,可以用git命令对/etc下的文件进行操作:查看历史,回退到历史版本…
也可以将/etc克隆到另外的主机中,实现双机备份。

Bootstrap confirm确认对话框

3

alert和confirm是很多项目中需要使用的,在Bootstrap框架下可以使用Modal模拟框做出比较漂亮的提示或者确认对话框,使得整体风格更加一致,原因还是代码复用率很高,今天写一段可以通用的代码,这样就不用每次都手动码···

bootstrap-confirm

Microsoft SQL Server 2008 R2 精简 绿色版

4

SQLServer2008R2

Microsoft SQL Serve系列的安装条件非常苛刻,以至于我现在需要安装SQL Server的时候一般不会想要去装完整的版本,只是这次需要调试的数据由于数据库备份版本是2008 R2,旧版本的不能用,可只找到绿盟有发布一款,但实例名不是默认的,无法直连数据库,而网络上竟然再没有找到Microsoft SQL Serve 2008 R2的绿色版!!

全新的系统安装是很流畅的下一步下一步,而中间卡住或者重新安装的时候就会遇到各种各样的问题,有时候系统会直接废掉(系统正常使用,只是别想装上SQL Server了),需要重新安装系统,经历了几次痛苦的安装过程后决定动手去搞一下这个东西

Windows10 去掉锁屏

1

本来WIN10组策略中有这个功能,可以直接禁用掉锁屏界面开机直接输入密码,锁定的时候可以直接在键盘输入密码打回车就可以进入了桌面。

但是WIN10周年更新以后你会发现组策略中多了这么一句 注意: 此设置仅适用于 Enterprise、Education 和 Server SKU。

DisableLockScreen-0

从此以后,重新激活的时候需要先移动鼠标或者敲击键盘,等待屏幕亮起之后再输入密码,时间就被万恶的微软这么浪费掉了(虽然很短,那也是我的,你没权利拿走)。

阿里云 CentOS 添加IPV6支持

0

默认情况下阿里云ECS禁用了IPV6的支持,首先要开启系统的IPV6功能

修改/etc/sysconfig/network文件使NETWORKING_IPV6=yes
删除/etc/modprobe.d/disable_ipv6.conf

tunnelbroker.net注册账户并创建一个 Regular Tunnel,需要填写服务器的公网IP
注册完成后到Example Configurations中找到系统自动生成的脚本,这里我们选择Linux-route2,先不要着急拿去执行