C++参考的翻译或校对

做新年规划的时候,我说过要翻译C++常用类的参考。C++的参考,其实别人已经翻译完了,只是部分内容需要校对。由于网站结构中大量使用了模板,同一个函数只需要翻译一个地方,所以四天就弄完了。而且我没有翻译函数层级的页面,所以比较快。

C++的参考其实最需要翻译。因为C++为了填C继承过来的坑,标准库增加了很多用于替代的设施。而国内的教程更新缓慢,这份参考如果不翻译,我估计到了2020年也不会完全普及。

以下是校对完成的类,希望大家继续参与:

更多内容

LocalStorage 的一个漏洞

LocalStorage 是 html5 的本地存储,其中的内容以文件的形式保存在本地磁盘中。

一个域(协议+域名+端口)的文件大小PC端为5~10M,移动端不大于2.5M。

但是我们可以在端口上做点手脚,因为端口是可控的,我们可以开一个服务器监听很多个端口,然后输出的页面使用iframe进行递归包含。

比如我们的页面可以嵌入以下代码:

更多内容

为什么C语言不简单

很多人都喜欢把C语言推荐给初学者,原因就是C语言语法简单。但是C语言若是用于开发之中,却是最复杂的语言。

底层的 == 好的?

C语言提供了对底层的操作,比如指针。但是C语言跟C++最大的不同就是,C语言避不开指针,而C++和用STL和智能指针库完全避开它。也即是说,其它语言的指针只是个类型,C语言的指针就是指针。我一向认为,初学者过早接触指针是个大忌。初学者需要的是做出各种好玩的应用,以此来产生即时反馈,而不是深入研究计算机系统,因为后者只会消磨掉他们的信心。初学者就应该专注于代码逻辑,并且屏蔽掉和底层打交道的一切事物。这么做个比喻吧,如果你刚学化学的时候,就给你讲元素周期律和VSEPR模型,你会感兴趣吗?

更多内容

2016 新的展望

  • 【√】首先就是翻译几个项目的文档。目前计划是orm2,ejs,nw.js(明明是中国人写的干嘛不提供中文文档),intelij。前面这些都是短小精悍的。还有一个备选项,c++(cplusplus.com),这个的参考手册实在是太长,我就挑常用类翻译好了。其实我觉得一定有必要翻译c++文档,特别是c++11新出来的util,比如时间、复数、随机数、原子和线程、正则,因为有助于推广新的标准。现在vs2015对11的标准支持已经相当不错了,就是国内的教程上面还差点。c++已经有了并发、容器、text、io、fs(tr2)、网络(tr2),还差个进程就能召唤神龙了。
  • 【X】然后打算写一篇web开发的教程,初步拟定用flask,原因是配置简单,框架较小又能满足全部要求。这个想法是受5天学会一种 web 开发框架的启发,非IT人士需要实现的想法其实也挺多的,特别是他们可以结合自身领域设计出那个领域的应用,但是,由于他们不懂编程,无法专注于业务逻辑,也免不了和计算机底层打交道的麻烦,所以我就按照web开发的六要素(router,req handler,模板,orm,util,部署)来讲解web开发中抽象的、共性的部分,让他们以后迁移到其他框架时也得心应手。这个如果由于上面那条而没有时间,就拖到明年。
  • 【√】接下来就是重新捡起来逆向,我以前是玩逆向的,不过那时候玩的是win32,顶多再加上点msil。现在呢,移动应用这么火,对移动应用的逆向分析也变得火了起来。整天搞开发有些无聊,玩玩逆向可以爽一下。
  • 【X】毕业之后回到北京,也有时间和条件练琴了,希望空闲时间能弹弹琴。
  • 【X】毕业设计之后,我决定不再碰任何数据分析/挖掘的东西。数据这个岗位,就算以后没有培训班,也有大量统计学的人来竞争,更何况薪资比不上开发(其实也差不多),还要学一大堆数学相关的东西。总之这是个坑,早弃早超生。
  • 【X】再有就是戒掉知乎,给前面的安排腾出时间。
  • 【√】再有就是把身体养好。我现在的功率大概是以前的50%吧。

学了四年,最大的感受就是,开发绝对是个保命的技能,是硬通货。你可以说他很low,但是你如果学了编程,学2~3门语言就可以把oo这块通吃了,然后又因为oo是大流,你在哪儿都能找到工作。你可以研究底层啊,图形啊,这类高深的东西,但它们的应用在所有互联网公司里占不到1%。创业公司,也就是需要技术岗来开发一些应用,别的高科技它用不到。你可以研究别的,但是开发这种保命的东西,绝对不可以丢弃。

给计算机大一新生的建议给计算机大一新生的建议

1. 核心课 (数据结构算法、组原、os、编译、网络(tcp/ip、http部分))一定要弄懂。最好写相关的项目,比如写个parser或者内核什么的都是极好的。

2. 不要追新的技术,而是追业界普遍使用的技术。比如你追了c#,却发现业界不少由c#转java的;你追了xamarin,也说发现人家还是用java+as开发应用。其实业界还是喜欢久经考验的稳定技术。语言学精一个,了解多个。每种类型的框架(比如前端css,前端js,后端orm,后端mvc,模板引擎)先学一个,其他的需要了边学边用。

3. 早点去leetcode刷题,国内公司特别爱装逼考算法,不少都是原题,切记。

4. 注重面向对象,注重架构方面的东西,特别是设计模式,不仅仅是为了可维护性。你以后代码可能是给别人提供支持的,你写的接口很难用的话,天天会被人问候祖宗。

5. 技术问题学会抛弃百度,使用goole,使用github,使用stackoverflow。学会使用bash和git,特别是后者,备份恢复的时候你就明白了。

6. 英语达到能阅读原版文档的水平。

7. 多写代码,有些东西做的多了才能从理性认识向感性飞跃。但不是让你写一万行hello world,也不是让你写一大堆app。你每学一个新的知识,都写个相关的demo出来。你想想你自己写了个http server,虽然实际业务中用不到,面试的时候这么说,然后解释一下自己怎么做的,是不是很爽。

8. 看书之前先去豆瓣看书评,不要看国产的一些烂书。多看最佳实践,比如effective系列。你一个学生没啥项目经验,又不看别人的最佳实践,写出来的代码能用?

龙族&天之炽 epub电子书汇总

内容清单

  • 龙族I·火之晨曦(连载版)
  • 龙族前传·哀悼之翼
  • 龙族II·悼亡者之瞳(连载版)
  • 龙族II·悼亡者之瞳(单行版)
  • 龙族III·黑月之潮(上)
  • 龙族III·黑月之潮(中)
  • 龙族III·黑月之潮(下)
  • 龙族III·黑月之潮(连载版)
  • 龙与少年游
  • 天之炽I·红龙的归来(连载版)
  • 天之炽I·红龙的归来(单行版)
  • 天之炽II·女武神(微博连载版)
  • 天之炽·女武神II(杂志连载版)
  • 天之炽·女武神II(微博连载版)
  • 龙族IV·奥丁之渊

更多内容

一些扯淡

  1. 编程思想是依赖于范式的,特性才是依赖于语言的。牛逼的人眼里没有语言只有范式,比如函数式、过程式、面向对象等等。

  2. 只学一门编程语言远远不够,没有任何一种语言能完全胜任你碰到的所有任务。但是除了首次学习之外,不需要专门学习编程语言,拿份参考指南边用边学就行了。

  3. 其他行业学习编程,然后用它来解决自己行业的问题。计算机科学也学编程,但是解决的是编程过程中的问题。

  4. 不是每个人学完编程都要走计算机科学这条路,完全可以先解决你自己的经济问题。也可以拿编程解决自己领域内的问题。

  5. 移动开发和web开发这种搬运api的东西,边学边用或者突击完全来得及,不需要单独花时间去学。

  6. 小厂的开发基本和独立开发者的东西差不多。大厂的规模要大一些,不过都是功能的堆砌,没啥技术复杂度。

  7. 学历不等于能力,但是学历是个简单粗暴的门槛。没办法,天朝人太多了。

  8. 很多公司喜欢装逼考算法或者一些基础知识,是因为工程问题没法考,尤其是一些特别依赖于开源框架的地方。大家喜欢用不同的解法,考什么对每个人来说都是冷门。