erlang工作前新手学习指引路线

Erlang学习总结,新手指引

要详细的写erlang入门技术网上有很多,我写的肯定没有那些大牛写的好,自己也实习了快一个月,也做一个总结,给后erlang初学兴趣者提供些拙见吧

第一步搭建学习环境

还没进公司前,我搭建的是erlang17+ Eclipse + erlide 网上教程很多,不细说搭建流程

第二步基本语法知识

认真看erlang程序设计的前5章,新出第二版也是大同小异,然后写一些题目,做一些润年和斐波那契数列之类的题目了,熟悉lists函数库的用法后,可以水一些HduOj的11页语法题,练练语法,这一步的要求是能够熟练使用tuple(含record)和list的基本用法

第三步熟悉基本的otp

认真看erlang程序设计的7、8、9章,了解进程的基本工作的原理,进程之间发消息和建立link等。

附习题三道

1、用进程实现,初始有[{‘[email protected]‘, 0}, {‘[email protected]‘, 0}, {‘[email protected]‘, 0}],其中[email protected],[email protected],[email protected]是三个erlang节点,对应的当前各种服务器节点人数是0,0,0,之后每次发送消息{update, Node},对应的Node人数就增加1,然后再提供一个,发送消息get_node_list,返回这三个节点在线情况,比如[{‘[email protected]‘, 12}, {‘[email protected]‘,
10}, {‘[email protected]‘, 23}]。

2、创建一个网络进程,注册名是player_socket,同时在player_socket进程创建一个玩家进程,注册名是player,接着,1、如果player进程crash了,那么要通知player_socket进程,同时要关闭player_socket进程;2、如果player_socket进程挂了,那么要通知player,但是不关闭player进程。

3、有8个Jobs分给4个进程去处理。比如fun(Id) -> io:format("~p~n", [Id]) end,Id就是第几个Job,那么就是[1-8]8个数字打印,分给四个进程去打印。

注意:能解决以上题目,otp入门差不多了,每道题目都要解决,不管花多久时间

第四步工作搭建环境

首先要会一些基本的Linux命令操作,没玩过Linux或很久没玩的少年需要花时间熟悉它,公司的实际开发环境是linux+erlang17.0+emacs编辑器+rebar编译,代码管理和版本控制git。资料在网上也有很多关于rebar编译和git,这里我也写不出的一二三。不过emacs的用法着实让人很是蛋疼,看文档的话也不一定会用那些快捷键,这个要不断的失败尝试

第五步gen_server  application  supervisor

认真看书16、18章这里开始才是真正的接触erlang,要求初步了解这三者的用法,然后结合第四步一起学习,这里如果对gen_tcp不了解的话,要求去学习下

第六步项目框架基础

有了前五步的积累,这里推荐otp服务器框架经典博客一篇

http://www.blogjava.net/yongboy/archive/2012/10/24/390185.html我们公司的项目框架是以博客中的第二个框架为基础扩展

序:以上六步花了10天的时间熟悉,我究竟有多弱,第十一天终于开始给公司贡献最水的代码了,进公司前,有两个多月没拍代码,近四个月没看过erlang,以前看的差不多都忘了,面试的几家游戏公司也没有问关于erlang的知识,凭借着数据结构和算法的底子也找到了几家公司,现在呆的这家公司的威神大哥在网上认识的,人挺不错,冲着这点别的单位都不去了,后面也证实自己的选择没有错,感谢

时间: 10-04

erlang工作前新手学习指引路线的相关文章

【转】程序员英语学习指引

转自互联网 ============= 作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://lucida.me/blog/english-for-programmers/ 概要 这篇文章面向程序员,简要的介绍了一些学习计算机专业英语的步骤和经验. 关于 之前不少人曾站内我如何学习英语,我也曾试图写一篇如何学习英语的博文,但我现在的实力着实无法写出令人信服的文章: 尽管阅读.写作和听力还可以,但口语很差——我指的是日常用语,即便出国一年,现在我和同事交流

Java闭关修炼64课 很适合新手学习的JAVA视频教程

Java闭关修炼64课 很适合新手学习的JAVA视频教程 java闭关修炼第一课 什么是java(1).rar  java闭关修炼第一课 什么是java.rar  java闭关修炼第七课 基础语言要素(1).rar  java闭关修炼第七课 基础语言要素.rar  java闭关修炼第三十一课 静态方法(1).rar  java闭关修炼第三十一课 静态方法.rar  java闭关修炼第三十七课 成员初始化顺序讨论(1).rar  java闭关修炼第三十七课 成员初始化顺序讨论.rar  java闭

夜空中最亮的星:慕课网新手学习指南_慕课手记

首先标题是为了凑够标准的十个字,如果你这会去数了一下然后想评论说不是十个字,那我佩服你的求知精神...进来的肯定不是看我瞎扯淡的,我们步入正题. 慕课网作为国内不能说是最大,但是起码口碑最好的一个IT学习的网站,受到了很多人的欢迎,但是在推荐给朋友的过程中,我就发现了一些问题,那就是纯小白根本不知道怎么开始学习.这里我要说一下什么叫做纯小白,你以为不知道变量,命令提示符,HTTP协议,这些就是小白了吗?那你就错了,我今天要说的是连怎么设置IP地址,怎么设置百度为首页,连自己的操作系统是winxp

看懂Android学习最佳路线

看到一篇文章中提到"最近几年国内的初级Android程序员已经很多了,但是中高级的Android技术人才仍然稀缺",这的确不假,从我在百度所进行的一些面试来看,找一个适合的高级Android工程师的确不容易,一般需要进行大量的面试才能挑选出一个比较满意的.为什么中高级Android程序员不多呢?这是一个问题,我不好回答,但是我想写一篇文章来描述下Android的学习路线,期望可以帮助更多的Android程序员提升自己.由于我也是从一个菜鸟过来的,所以我会结合我的个人经历以及我对Andr

对于新手学习PHP的规划建议

关于自学PHP,这方面的很多资料,我几乎没有看到过一个满意的答案,我该构建一个什么样的体系,如何构建,从哪开始?下面就是小编总结的学习网站开发(使用PHP)的过程,如果你有基础或已经了解一些,你可以跳过相关步骤.建议你看完整篇文章,确保你认同这份计划,你再开始你的学习之旅. 一个人独立学习PHP可能有点难,但是这也未尝不可.如果你觉得自己没有足够的意志力,那么可以通过去兄弟连PHP培训学习PHP编程,如果自己有些基础,想丰富知识,那么可以尝试以下方法学习PHP.大概只需要1-2个月的时间,这还是

对新手学习自动化的一些感想

自己之前为了学习自动化测试加了几个自动化测试的群,在群里和不少大牛交流,也和不少新手(菜鸟)交流.因为自己也是一个自动化测试的新手,就想着总结下自动化测试学习工作中遇到的问题,也希望如果有想学习自动化的童鞋,可以学习前看下这篇感想,可能对于你的学习有所帮助.下面我所说的东西都是群里好多自动化测试新手遇到的,有技术方面的,也有工作中遇到关于自动化的问题(很现实...) NO1. 学习自动化难不难?自动化测试如果仅仅是使用录制回放来进行自动化测试是一点都不难的,这种使用工具进行录制回放的自动化测试(

新手学习selenium路线图(老司机亲手绘制)

前言: 最近群里有不少小白,想入手selenium,但是一直没找到学习路线,还没入门就迷路了,于是小编亲手绘制了一幅学习路线图.希望能帮助小白快速入门,帮助已经入门的,尽快提升! 学习selenium主要分五个阶段,自己在哪个层级,可以对号入座下. 第一阶段:幼儿园   1.选语言:在学习自动化前,先要选一门语言学习,而不是选什么工具,学习selenium,目前最流行的是java和python,至于选哪个,看自己的爱好了,这里就不说哪个语言好(php才是最好的语言).小编是半路出家,没什么语言基

学习LINUX前,学习的内容(20170410)

学习Linux前,教导学习的是计算机基础 CPU与存储之间 操作系统(内核:Kernel负责管理硬件资源,并且把硬件资源虚拟成其他样子,提供给上层所需要运行的应用程序) API(Application progrem interface) 库:Library 本身也是应用程序,它不能独立运行,它只能被其他应用程序调用才能运行 库调用(LIB call) 系统调用(System Call)--api 应用程序本身可以调用库,也可以直接跟内核交互 应用程序随系统的启动而启动 也有根据需要而启动--交

新手学习 Vim 的五个技巧

多年来,我一直想学 Vim.如今 Vim 是我最喜欢的 Linux 文本编辑器,也是开发者和系统管理者最喜爱的开源工具.我说的学习,指的是真正意义上的学习.想要精通确实很难,所以我只想要达到熟练的水平.我使用了这么多年的 Linux ,我会的也仅仅只是打开一个文件,使用上下左右箭头按键来移动光标,切换到插入模式,更改一些文本,保存,然后退出. 但那只是 Vim 的最最基本的操作.我的技能水平只能让我在终端使用 Vim 修改文本,但是它并没有任何一个我想象中强大的文本处理功能.这样我完全无法用 V