新的一年不知不觉已经到来了,总结过去的 2017,相信小伙们一定有很多收获和感悟,那对于刚刚到来的 2018,有什么期待和规划呢?不防就来学习一门新的语言吧,进一步提高编程技能,扩宽自己的知识领域。希望所有小伙伴的 2018,都是元气满满的一年。
Objective-C
本文面向已有其它语言(如Java,C,PHP,Javascript)编程经验的iOS开发初学者,初衷在于让我的同事一小时内了解如何开始开发iOS App,学习目标包括:
- 能使用Xcode IDE、模拟器
- 能修改、调试已有iOS App
- 能在已有应用内创建新模块
- 能创建新应用
- 能发布应用到App Store
这份学习资料是为 iOS 初学者所准备的,旨在帮助 iOS 初学者们快速找到适合自己的学习资料,节省他们搜索资料的时间,使他们更好的规划好自己的 iOS 学习路线,更快的入门,更准确的定位的目前所处的位置。
Scala
我初次接触Scala时,由于对Scala相关的工具不够熟悉,学习的效率低下。所以本文主要介绍Scala编程所必备的工具。一般而言,我们接触一门编程语言,都需要接触这门语言的编译器、REPL、构建工具、集成开发环境、文档(当然,因语言而异,编译器和REPL并不是每个语言都有的)。
这是一门很新的语言,2001年前后正式公布,算起来是比较年轻的编程语言了,更重要的是它是面向java程序员的函数式编程语言,它的代码运行在JVM之上。
Scala是一门有趣且实用的语言,它以JVM位目标环境,将面向对象和函数式编程有机地结合起来,带来独特的编程体验。本文主要整理《快学Scala》中的初级A1部分,适用于Scala的初级应用开发学习。
- 0.安装和运行scala
- 1.Scala基础
- 2.控制流与函数
- 3.数组
Swift
让不懂编程的人爱上iPhone开发(2017秋iOS11+Swift4+Xcode9版)
适合看本系列教程的对象:
- 从未学过编程,或者对Swift语言一无所知,但要懂一些常用的英语单词
- 从未学过iPhone/iPad开发
- 喜欢苹果,充满想象力,喜欢创造,同时也愿意承受学习的压力,愿意投入时间和精力
如果你对iOS开发已具备丰富的经验,请不要在此浪费时间!
如果你只是想了解下Swift语言的开发知识,那么建议直接阅读苹果的官方文档,或另外一份教程(Swift开发入门系列教程)。
- 快速上手
- 类型
- 运算符
- Optional类型
- 流程控制
- 函数
- 闭包
- 类
- 枚举和结构体
- 协议和拓展
- 泛型
- 错误处理
- 编程语言
- iOS 开发
- 视频教程
- 开源项目
- 优秀博客
- 参考来源
Shell
Shell脚本(英语:Shell script),又称Shell命令稿、程序化脚本,是一种电脑程序与文本文件,内容由一连串的shell命令组成,经由Unix Shell直译其内容后运作。被当成是一种脚本语言来设计,其运作方式与直译语言相当,由Unix shell扮演命令行解释器的角色,在读取shell脚本之后,依序运行其中的shell命令,之后输出结果。利用shell脚本可以进行系统管理,文件操作等。
Bash是shell脚本的一种,也是Mac默认的,下面分享一些shell 使用的小技巧,可以极大的提高使用效率。
在上一篇里我们定下了给pandoc写补全脚本的计划:
- 支持主选项(General options)
- 支持子选项(Reader options/General writer options)
- 支持给选项提供参数值来源。比如在敲pandoc -f之后,能够补全FORMAT的内容。
TypeScript
JavaScript 到 TypeScript 1 - 什么是 TypeScript
随着应用的庞大,项目中 JavaScript 的代码也会越来越臃肿,这时候许多 JavaScript 的语言弊端就会愈发明显,而 TypeScript 的出现,就是着力于解决 JavaScript 语言天生的弱势:静态类型。
对于我个人而言, 使用 TypeScript 写项目已经有半年多了,中间有被 TypeScript 的配置与升级折腾到想砸电脑的时候,也有提前发现错误时的暗自庆幸,同时也有因为找不到类型定义文件而自己手写,提PR补全的时候。总的来说使用 TypeScript 的这一年,什么感觉都有。但最后还是依然坚持使用 TypeScript ,因为其带来的效率提升是远远大于环境升级所带来的开销的。
TypeScript 2.0 对于产品团队来说是个伟大的历程,这个历程少不了来自社区和合作伙伴的贡献。这个版本带来了一些新的特性,可以提高开发人员的开发效率。这个版本使 TypeScript 更加接近 ECMAScript 的发展,为 JavaScript 库和工具提供了更为广泛的支持。它通过编辑类工具,带来了先进的编辑体验,增强了语言服务。
用typescript写react和node是怎样的一种体验
接触typescript挺早的。13年底的时候,公司的牛人在团队内推广typescript,没多久我们就把typescript做的项目搞上了生产环境。玩新东西的初期都是很爽的,但没多久就变成了灾难。团队人员更替,培训/学习成本增加;开发工具不统一,效率极其低下;ts带来的利好被消耗的一干二净,只有无尽的坑。种种不顺,最后不得不把所有ts文件删除。这是一次不好的经历,后面我很长一段时间都没再写过typescript了。但是,15年发生了两件事,让typescript再次回到我的视线。
C
- C语言起源
- C语言特性
- C语言的应用范围
- C语言标准
- 使用C语言的7个步骤
- 字符类型
- 整数类型
- 浮点类型
- 原子类型(atomic type),限定符
- 由 typedef 引入的说明符
- 修饰符
- 数值范围
学习C语言语法的目的:就是能够利用C语言编写程序,然后运行程序跟硬件(计算机、手机等硬件设备)进行交互。由于我们的最终目的是学习iOS开发,学习iOS开发的话必须在Mac系统下,因此我就在Mac系统环境下开发C语言程序,而不是在Windows环境下。
总结一下第一个C程序的运行步骤:
- 在编译前先执行#include指令,拷贝stdio.h的内容到源程序中
- 编译源程序,生成目标文件
- 链接C语言函数库,生成可执行文件
- 运行可执行文件,在屏幕上输出"Hello, World!"
看起来好像挺多步骤的、挺麻烦的,但是当我们点击Xcode的运行按钮时,Xcode会自动按顺序执行上面4个步骤。
指针数组和数组指针---C/C++中int p[4]和int (p)[4]的区别
C/C++中的这两种书写方法实在是很像,但是它们的含义有很大的不同,所以一定要能清晰地辨别它们。简单地说,
int *p[4]
是指针数组,int(*p)[4]
是指向数组的指针。
socket编程面向的是传输层。我们在这一层上来收发HTTP报文。由于我们是静态文件服务器,所以有效的请求报文是 GET url 的格式。我们只要解析这个url,然后发送对应的文件就OK了。这个是基本的思路。
Go
- Go语言介绍
- Go安装与配置
- 0x01 设置 Go 环境
- 0x02 安装 Go
- 0x03 完整命令
我还是按照我的方式来总结一篇Go语言的学习资源吧,会从以下几个方面整理:1)在线学习教程:比较系统全面,非常适合新手入门学习;
2)书籍:毕竟很多人学习一门语言是从书籍开始的;
3)其他Go语言的整理资源:很多比较好的Go语言资源总结整理,推荐看;
4)Go语言中文社区:专门的Go语言中文社区,可以交流讨论,感兴趣的可以看看;
5)其他:其他与Go语言相关的一些整理;
C#
C#是一个优雅的、类型安全的面向对象语言。使用C#,开发者可以在.NET框架下构建安全而强大的应用程序。
- 基本语法
- 有趣的特性
- 动态对象
- 没有涉及到的主题
- 扩展阅读
- 基础概念和语法
- 函数
- 类与对象
- 参考资料
C# 语言是在2000发布的,至今已正式发布了7个版本,每个版本都包含了许多令人兴奋的新特性和功能更新。同时,C# 每个版本的发布都与同时期的 Visual Studio 以及 .NET 运行时版本高度耦合,这也有助于开发者更好的学习掌握 C#,并将其与 Visual Studio 以及 .NET 的使用结合起来。
- 加快C#版本的发布速度
- 非空和可空的引用类型
- 新的轻量级类:Records
- 默认接口实现
- 其它的 C# 8.0 新特性
- C#开发工具推荐
随着微软越来越开放,C#也变得越来越吸引人们的眼球。而在游戏行业中,C#也开始慢慢地获得了关注。这不, 网易绝代双娇手游团队已经全面使用.Net Core支持前后端统一C#开发,跨平台部署了。
- 0x00 前言
- 0x01 游戏引擎
- 0x02 图像相关
- 0x03 物理相关
- 0x04 结语
首先,我们要知道Unity3D中的Js脚本究竟是什么?最准确的学名,我想应该叫做UnityScript (因为Unity-Technologies在github上托管的代码就叫这个名字)。开发到底是使用C#还是UnityScript呢?如果不考虑运行的效率,仅仅考虑开发时候的感受,小匹夫就谈谈自己的看法好啦——那就是珍惜时间,远离UnityScript。
CSS
- CSS简介
- CSS基本语法
- CSS高级语法
- CSS创建
本系列文章(重拾css)主要参考王福朋“css知多少”,结合自己的理解和学习需要,修改或添加了一些内容,难免有失偏颇,仅供自我学习、参考之用。
本系列文章的结构为:
- 第一部分讲css样式的加载和层叠;
- 第二部分讲选择器以及选择器的等级;
- 第三部分讲呈现的各种样式(背景、字体、定位、浮动等)。
这样一个思路,也正是浏览器使用css的流程,是最有效的学习思路。
SegmentFault 技术周刊 Vol.38 - 神奇的 CSS
- CSS 基础特性
- 动起来
- CSS 黑科技
- 来画画吧
CSS3热身实战--过渡与动画(实现炫酷下拉,手风琴,无缝滚动)
C++
把 C++ 想象成人类社会。
访问权限、继承、友元将无比真实的反应人类社会中的种种关系。
- 一、类内部访问权限
- 二、继承时访问权限
- 三、开始处理各种继承问题(两种访问权限的混搭)
- 四、私生子的逆袭
C++ 之父 Bjarne Stroustrup:简单的表述方式才是最优的方案
1982年,贝尔实验室(美国AT&T公司)的Bjarne Stroustrup博士在c语言的基础上引入并扩充了面向对象的概念,发明了新的程序语言C++。之所以被命名为C++,是为了表达该语言与c语言的渊源关系。Bjarne Stroustrup博士因此被尊称为“C++语言之父”。
由于PHP的底层就是C开发的,不可避免的常用PHP扩展也都是C开发的,但是有时我们想用C++来开发可以吗,答案当然是可以的,并且有它自己的优势,第一可以方便地面向对象编程,第二可以利用现有C++编译的动态链接库。常规的PHP扩展开发流程我再别的文章里面已经介绍过了,这里不再赘述,只介绍一下C++开发PHP扩展的不同之处。
作为现代C++中最具表现力,被应用最广泛的一个语法功能,Templates(模版),无疑应该被仔细研究。自从有了STL,模版渐渐成为现代C++开发的主角。前不久因为老师的作业要求,我稍微学习了一下C++的模版,写一篇入门文,请大神轻喷,谢谢。
对神作《Effctive c++》学习的一些总结和疑问(一)
花时间通读了下Meyers大神的著作《Effective c++》,其中受益很多,毕竟书中有很多东西是之前在写代码时完全没有考虑过的地方,作者用独到的眼光来告诉我们,c++不是一门简单的编程语言,而是一门堆积埃菲尔铁塔式程序的艺术。接下来,让我对书中的“条款”用自己的语言方式,作一些总结和个人心得批注。
- 标准库
- 框架
- 人工智能
- 异步事件循环
- 音频
- 生态学
- 压缩
- 并发性
- 容器
- 密码学
- 数据库
- 调试
- 游戏引擎
- 图形用户界面
- 图形
- 图像处理
- 国际化
- Jason
- 日志
- 机器学习
- 数学
- 多媒体
- 网络
- 物理学
- 机器人学
- 科学计算
- 脚本
- 序列化
- 视频
- 虚拟机
- Web应用框架
- XML
- 多项混杂
- 软件
PHP
PHP主要用于服务端的脚本程序,但PHP的功能远不局限于此。PHP主要用于以下三个领域:
- 服务端脚本
- 命令行脚本
- 编写桌面应用程序(PHP-GTK)
PHP 是用 C 语言写的。对于每个 PHPer 来说,都有着内心的一种希望写扩展的冲动了吧。然而,缺乏一个很好的切入点。Google 上搜 PHP 扩展开发,大部分都是复制品文章,甚至有些人连操作都没有操作过就搬运在了自己的博客。不过也有几篇好教程,但是都是 PHP 5 时代的产物,隐藏着非常多的坑。我会将我自己慢慢踩坑的过程记录下来,也许这就成了其它人的“教程”了吧。
前言
实战
- PHP实战创建型模式
- PHP实战结构型模式
- PHP实战行为型模式
测试用例
源码
纠错
作为我前端的入门项目,我对后台管理系统的感情还是挺深的。本着以下几点原因,写了此文。
- 对后台管理系统做一个综合全面的总结(嗯,这会是我以后项目总结的开端)。
- 也算是给新入门的一个基本概念和学习范围吧(~大神请自动忽略~)。
- 知识在于分享,也是希望和大家交流下,如何把后台管理系统写得能更具工程化,模块化,更有效率。
后台管理系统多为PC端,所以css3和HTML5的技术运用不多,会根据产品需求进行优雅降级和渐进增强。下面先上一张图,罗列下后台管理系统涉及到的方方面面,欢迎大家补充。
- Composer
- PHP7
- PSR
- Swoole
- Laravel
- Phar
- C/C++/GO
- HTML5
- Vue.js
- 深度学习/人工智能
Ruby
就其本身而言,Ruby in Rails 已经从一个简单的框架演化为强大的工具。最近几年,其名气大涨,这也合情合理;除拥有稳定的性能之外,在开发功能复杂的应用时使用 gem 能够节约大量时间。
我一直关注web领域的快速开发,虽然自己用PHP已经很顺手了,但是他那蛋疼的语法,让我这种喜欢优雅开发的人会觉得很累。所以一直对号称敏捷开发旗帜的ROR有着浓厚的兴趣,但一直苦于没有时间去深入研究。最近终于下定决心要摘下这颗宝石,这一系列文章只是我学习过程中的笔记,大家如果觉得有错误的地方还请指出,毕竟我在ruby领域是一个不折不扣的初学者。
- 在Mac上安装Ruby
- 最适合初学者读的文档
- 开发环境
- 一些有趣的细节
- 第一天的感受
- Ruby 语言
- Rails 框架
- 挑战解题
- 第一章 简介
- 第二章 初级:类和对象
- 第三章 块
- 第四章 模块
- 第五章 中级:单元测试
- 第六章 高级:元编程和DSL
- 附录 学习Ruby的一些小窍门
松本行弘(Yukihiro Matsumoto),Ruby语言发明者,亦是亚洲首屈一指的编程语言发明者。现兼任网络应用通信研究所(NaCl)研究员、乐天技术研究所研究员、Heroku首席架构师等。昵称“Matz”。
Java
给Java新手的一些建议——Java知识点归纳(Java基础部分)
写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java。
前段时间应 CSDN 邀请审核 Java 知识库内容,借此我也有机会好好梳理了下自己的 Java 知识体系, 成文一篇望能帮到即将走进或正在 Java 世界跋涉的程序员们。
- 第一张,基础图
- 第二张,技能图
- 第三张,延伸图
目前业界最流行的微服务架构正在或者已被各种规模的互联网公司广泛接受和认可,业已成为互联网开发人员必备技术。无论是互联网、云计算还是大数据,Java平台已成为全栈的生态体系,其重要性几乎不可替代。这两年微服务作为一个非常新的技术,各种理论流派试图从不同的角度去阐述其概念和优势,我一开始是拒绝的,因为我没有”Duang“的一下想清楚。个人感性地认知是,姿势不对,纯靠意会。理性的看法则是,在思想上,那些布道师们并未达到一致。经过参考各家思想之后,得到了一些自己的领悟,我分享给大家。
毕业已经一年有余,这一年里特别感谢技术管理人员的器重,以及同事的帮忙,学到了不少东西。这一年里走过一些弯路,也碰到一些难题,也受到过做为一名开发却经常为系统维护和发布当救火队员的苦恼。遂决定梳理一下自己所学的东西,为大家分享一下。
- 引言
- 语法基础
- 多线程
- 开源框架
- Web基础
- 系统架构
- Nosql
- 服务端
- 数据库相关
- 第三方接口对接
推荐几个自己写的Java后端相关的范例项目 - CSDN博客
这里推荐几个自己写的范例项目,主要采用SSM(Spring+SpringMVC+Mybatis)框架,分布式架构采用的是(dubbo+zookeeper)。范例项目的好处是简单易懂,在架构一个新的项目的时候可以直接当成脚手架来用,方便快速开发,另外项目中涉及到以及未来可能涉及到的知识点都会不断完善。
- 算法和数据结构
- 面向对象
- 编程习惯(应当避免)
- 异常处理使用不当
- Java 虚拟机 JVM
Python
让我从关于 Python 中的 asyncio 这个标准库的讨论中休息一会,谈谈我最近正在思考的一些东西:Python 的速度。对不了解我的人说明一下,我是一个 Python 的粉丝,而且我在我能想到的所有地方都积极地使用 Python。人们对 Python 最大的抱怨之一就是它的速度比较慢,有些人甚至拒绝尝试使用 Python,因为它比其他语言速度慢。这里说说为什么我认为应该尝试使用 Python,尽管它是有点慢。
12月28日,微信宣布,小程序增加了新的类目:小游戏,同时上线小游戏「跳一跳」,瞬间跳一跳成了全民游戏,玩得厉害的撑死不过200多分,如何牢牢占据排行榜的第一位呢?用Python帮助你,Python真的无所不能。
我用Python分析了42万字的歌词,为了搞清楚民谣歌手们在唱些什么
听了这么多年民谣,我有一种感觉,就是很多歌都似曾相识,但是仔细一想,又哪一首都想不起来,为了搞清楚这群流浪在祖国大地的现代游吟诗人们都在唱些什么,我做了一些数据分析的工作。我首先写了一个爬虫,它可以根据歌手或乐队的名字来自动抓取这个歌手的所有歌,为了保证平衡,我最多只抓取前50首歌,老实说,大多数歌手被人熟知的歌并不会超过这个数字。
- 一、内容分析
- 二、创建项目
- 三、主要代码
- 四、运行
- 五、保存结果
2017第二版主要更新:
- 所有代码,包括Python教程,都升级到了Python3.6(第一版用的是Python2.7)
- 更新了Python的安装介绍。这次改用Anaconda Python发行版,以及其他一些需要的Python包
- 使用了最新的2017版pandas
- 新增了一章,用来介绍pandas的高级应用工具,和其他一些有用的小贴士
- 简单介绍了如何使用statsmodels和scikit-learn
《流畅的python》是一本适合python进阶的书,里面介绍的基本都是高级的python用法。于初学python的人来说,基础大概也就够用了,但往往由于够用让他们忘了深入, 去精通。我们希望全面了解这个语言的能力边界,可能一些高级的特性并不能马上掌握使用,因此这本书是工作之余,还有余力的人来阅读,我这边就将其有用,精妙的进阶内容整理出来。
JavaScript
JavaScript虽是一种有着近20年历史的编程语言,但其生命力却日见旺盛,伴随着互联网的发展,它己经成为21世纪最重要的编程语言之一。
- 一、世无英雄,遂使竖子成名
- 二、JavaScript技术导航
- 三、我的JavaScript学习建议
随着 JavaScript 本身的完善,越来越多的人开始喜欢使用原生 JavaScript 开发代替各种库,其中不少人发出了用原生 JavaScript 代替 jQuery 的声音。这并不是什么坏事,但也不见得就是好事。如果你真的想把 jQuery 从前端依赖库中移除掉,我建议你慎重考虑。
本文介绍了 JavaScript 初学者应该知道的一些技巧和陷阱。如果你是老司机,就当做回顾了,哪里有写的不好的地方欢迎指出。
- 你是否尝试过对一个数字数组进行排序呢?
- new Date() 很好用
- 替换,实际上并没有替换
- 小心使用比较
- 数组不是原始类型
- 闭包
- 聊一聊 bind
如果你不是老司机,面对众多JavaScript开发工具,也许会有些搞不清楚状况。因为,JavaScript的生态系统在迅速的变化,新手很难理解这些工具的功能以及它们所解决的问题。对此,我深有体会。
“前端怎么学”应该因人而异,别人的方法未必适合自己。就说说我的学习方法吧:我把大部分时间放在学习js上了。因为这个js的学习曲线,先平后陡。项目实践和练习啥的,我不说了,主要说下工作之外的时间利用问题。我是怎么学的呢,看书,分析源码。个人这几天统计了一下,前端书籍目前看了50多本吧,大部分都是js的。市面上的书基本,差不多都看过。
本期完
:)
欢迎关注 SegmentFault 微信公众号 :)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。