文档章节

初为程序猿(媛)的你,这些技能可以为你们加持

叶大侠
 叶大侠
发布于 2017/08/28 00:49
字数 2370
阅读 49
收藏 0

每个程序员应该精挑细选和打磨他的工具箱,这里推荐的东西都是本人使用频次比较高的,不是奇淫巧技,也不需要花很多时间,但是会让你收益超额的,至少对我来说是这样的。

这是很有诚意的一篇文章,你可以选择一笑而过,也可以默默收藏。

一个自己的博客

笔者从大学就开始写博客,从 WordPress 到自己用 JFinal 写了一个,中间有断了几次,不想再续费服务器,对写的东西也不太满意,索性用 Github Pages + hexo 重新开始写。

个人觉得写博客,首先是为自己而写的,其次可能对他人有帮助。单纯地阅读而不思考收获会大打折扣的,写出来就是一个行之有效的思考整理过程。

我推荐用 Github Pages + hexo 的方式,一开始你可能和我一样写的不好,没什么人看,记住,首先你是给自己写的,坚持原创和记录,你会变的更好,等觉得拿的出手了,可以开始在一些平台上发表,比如掘金,简书。

花半天时间把自己的个人博客给搭建起来吧。

Shadowsocks

不能用 Google,就失去了世界上最大的百科全书的使用权,这个损失是巨大的!每天都会遇到无数问题的我们,学会越过这道墙成了一个必备的技能。

我建议自己买一台国外的服务器,AWS、阿里云等,最低配就可以了,可以几个人一起用,分担一下费用,稳定又安全,还可以在上面折腾点别的,这点投资我觉得是超值的。By the way, AWS 有一年的免费额度,阿里云也在搞活动,¥330 一年的(香港)国外节点。如果还是觉得麻烦,那至少应该去买个账号吧。(真的没收广告费)

搭建一个这样的服务真的超级简单,几行命令就能搞定。

服务端和客户端教程都可以在上面找到,如果有服务器的前提下,大约花你 30 分钟就能使用全球最大的百科全书了。

git & github

git 是个伟大的协作和版本管理工具,这几年经过社区的传播和国内越来越多 git 代码托管平台的崛起,现在 git 应该碾压乌龟 SVN 作为很多团队和公司的首选版本管理工具了,如果你还没有开始使用 git ,很遗憾你已经拖后腿了。

作为全球最大的源(程)代(序)码(员)托(社)管(交)平台 github ,以前我还不知道它有什么用,和很多人一样,注册之后很长时间里面就放了几个 Demo ,然后就不怎么管了。以前写代码就是蒙着写,不会就 Google 一下,不小心就会造一个重复的轮子出来 (SQLiteUtils: 实际是 4 年前写的,后来改了名字重新上传),这样其实是很不好的,闭门造车不仅仅是浪费时间,还可能阻碍了你的认知,自我感觉良好而已。移动互联网的快速发展,尤其是 Android ,涌现了很多优秀的开源作品,大家也开始会用 github 去搜索,收藏一些好的作品,学习并使用到自己的项目中。如果你只去使用那些公认足够 solid,有完整翻译过来的中文文档,百度一搜就有一堆答案的 library 或者 tools,可能你已经落后新生代的程序员一大截了。另外如果你有留意,越来越多的公司都把简历上的技术博客、 github 作为一个非常重要的加分项了,反正我在写 JD 和面试之前真的会去翻看对方的博客和 github 仓库的。

要写出好的文章,阅读大量的优秀文章是必不可少的;要写出优秀的代码亦如此,学会参与到一些开源项目中 ( 使用它;给它提建议和bug;动手修改它,提交你的 PR ),学着自己动手构建一个开源项目和维护它,这件事情需要极大的热情,但你会得到同行的支持和认可,为你的职业生涯添砖加瓦。

打开看到这么多东西,你可能又退回去使用你的乌龟了,我的建议是先注册个 github,简单了解一下 git 的原理和一些简单的命令,常用的命令其实非常少。git 的学习成本相对高,你可能至少花半天的时间去仔细研究一下,并且需要后面不断去总结和精进,当你熟练掌握的那一天,你一定会感激当初的自己。

持续集成(CI)

如果你在搭建自己的小网站,那么第一件事应该是让你的代码一写好然后就能一键发布到服务器上,这个技能就叫持续集成(continuous integration)。当然这个是狭义的解释哈。优秀的程序员应该有一个强烈的意识:dont repeat yourself. 不要做重复的工作。如果你是和我一样的 Java 程序员,每次打包上线重复着:修改配置 -> 打包 war -> 登录 ftp 上传 war 包 -> ssh 登录服务器发布,答应我,从今天开始不要浪费时间做这些重复的动作了。记住,看起来差不多重复的流程都可以通过写一些代码来完成。

在了解 jenkins 前,先看下我常用的一段发布脚本可以帮助你理解这个流程,以下的脚本是在服务器端运行的。

#!/bin/bash

TOMCAT_HOME=~/tools/apache-tomcat-9.0.0.M26

cd ~/sources

// 把项目源代码从 git 上复制下来
if [ ! -d "RAP" ]
then
    git clone https://github.com/YeDaxia/RAP.git
    cd RAP
else
    cd RAP 
    git reset --hard
    git pull
fi

// 切换到发布的分枝
git checkout release
echo "current branch is :"
git branch

// 替换正式环境的配置文件
cp -f ~/deploys/rap/config.properties ~/sources/RAP/src/main/resources/ 

// 打包 war 
mvn clean
mvn package

// 复制 war 到 tomcat 目录下
cp target/*.war  ${TOMCAT_HOME}/webapps/ROOT.war

// 把 tomcat 给停了,因为 shutdown.sh 经常有问题
#kill all java process
ps -ef|grep java|grep -v grep|cut -c 9-15|xargs sudo kill -9

//启动 tomcat
sudo sh ${TOMCAT_HOME}/bin/startup.sh

CI 的过程,就是你提交代码到 github 或者其他代码托管平台,然后触发一个 webhook 请求调用服务器端类似上面的一个过程的代码。

总之 CI 其实就是一件一劳永逸的事情,上面只是举个例子,无论你是 Android 程序员还是 PHP 程序员,你都应该花点时间掌握这个技能,你可能要学习一下一些构建工具,一点 linux 命令,这可能会麻烦一些,但是这是值得的。

Vim

学习vim就像学弹钢琴一样,一旦学会,受益无穷。

不要误会,我自己也是一个 IDE 程序员,除了装B,基本这是程序员绕不过去的一个工具,只要你还想自己搭建个服务器,做点东西。

登录你的 linux 系统,花半个小时跟着玩一下。不要和我一样几年后才意识到去使用那些快捷键,之前都只会愚蠢地使用左右上下,非常低效啊。用进退废,换了 idea 后,eclipse 的快捷键基本就忘的差不多了,我听说有人用 vim + markdown 来写博客的,我现在用的是有道笔记,我觉得这个可操作性还是有的,可以去尝试一下。

命令行窗口

只会用 ↑ ↓ ← →来移动光标真的很低效,很受不了!

ctrl + u : 清除当前行
ctrl + a : 到命令行首
ctrl + e : 到命令行末
tab: 自动完成
↑ ↓: 命令历史

Chrome Bookmark

你用什么来收集那些小的知识点和一些不错的站点呢?我的答案就是 Chrome 自带的书签了。注册一个 Google 账号,它会同步好你的书签,永不丢失。

chrome://bookmarks

用这个命令可以进入书签管理器,定期清理,有价值的留下,这样你的个人知识库了就越来越丰富了。亮一下我的书签:

my bookmark

好吧,就先介绍到这吧,夜已深。


另外,近期打算在 GitChat 做一次分享,手把手教大家去用好上面的工具,如果你有兴趣,可以先加一下这个 Q 群:70948803, 我定用心准备好,不负期待,让大家学到东西,欢迎围观!前 10 名有福利哦 :-) !

© 著作权归作者所有

共有 人打赏支持
叶大侠

叶大侠

粉丝 57
博文 44
码字总数 67312
作品 5
广州
程序员
身边有个漂亮女程序员是种什么样的体验?

程序员,本来就被认为是奇葩的存在了,身上自带光(biao)环(qian),说的好听的就是人傻钱多好管理,还有另一种说法就是挣得多花的少死的早,在这里心疼程序猿们一秒钟。 然而除了程序猿,...

micf435p6d221ssdld2
01/03
0
0
悠然乱弹:程序猿(媛)们应该这样解读段子

段子手是写成上面的样子的,作为一个程序猿(媛),我们的绝对不能一笑而过,而应该从程序猿(媛)们的视角进行不一样的解读: 从老王的角度看:欠下的总要换的,你以为别人不知道你捣得鬼,...

悠悠然然
2015/08/27
0
1
那些解释起来很蛋疼的挨踢工种

过年回家,总免不了向家乡父老解释自己的职业,而对互联网行业的极客们来说,向非互联网行业的亲戚朋友说明白自己是干嘛的,也许是比写需求文档和写代码更难完成的任务。 不久前我在极客公园...

酱哥哥
2013/01/28
8.9K
102
一、信仰根基 2.永生之道

【提要】生命是从神而来,神是生命的源头。今天,基因科学已经揭示生命是一组神奇的密码,正如电脑的程序(这一点,媛媛和猿猿们最有发言权了),见证了一位伟大和有智慧的上帝的作为。而物质...

小小牛奋男
2016/03/02
24
0
【源资讯 第02期】大大们相爱相杀:谷歌安全有速度,微软“硬件”开源,Apache Hive 性能好

11 月 3 日晚间,一个消息让无数的人特别是程序员们虎躯一震,一夜都没睡着:微信团队宣布小程序开放公测,一大堆干货来袭,程序猿和程序媛们匆匆上车~ 不过虽然一波攻城狮们纷纷不睡觉都想喝...

两味真火
2016/11/04
3.1K
9

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
27
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部