分几个阶段:
1. 小学的时候就接触BASIC,但一直没人教,到初中的时候,印象里是初二98-99年左右,翻出一本书,专门讲BASIC,然后在短时间里领悟(因为没人教)出来函数、数组、递归这三个最难的概念,并且在小霸王上实践出来。后来,父母离婚,家里的事情打断了学编程的热情。
2. 高中的时候,家里买了一个电脑,赛扬733(或者533?),在上面研究VB,当时也是没有书,但好在有卖盗版碟的,买了一套MSDN,半年的时间把VB吃透了(但还不会用class,面向对象理解的一塌糊涂)。高二下学期,准备考高,编程基本就荒废了。
3. 然后就是大学,突飞猛进还是在进了ACM集训队以后,老师(其实就是学院里的一个在读博士)教的好,算是这辈子在一个多月里写过最多代码的时间段。大学平时的课程其实都排不满,但集训队在暑期,每天上午4节下午4节晚上2节,不休息,跟高中时候一样的节奏。
4. 最后一次比较大的进步应该是毕业三年左右,有一个同事推荐了一本书,真正动手写了一个操作系统,算是对操作系统的概念真正有了完整的认识了。书就是下面这本,我相信很多人都看过,确实是好书:
百度多了
你就明白:它也许有用,但它封印了你精进计算机英语的机会。
Google多了
你就明白:各地大佬们的文章很Nice,但它们仅是你技术知识体系的精华补充。
开始读书了
你就明白:你以往东拼西凑几十篇烂文才明白的事,书上那几页纸都写着,而且详细的很。
接触到国内外大社的经典书后
你就明白:那些烂大街的21天宝典,7周速成,都是些什么玩意,误人子弟!
图灵牛逼,动物牛逼,Manning牛逼。
好书读多了
你就明白:技术是一环扣一环的,有牢固的技术知识体系,学啥都事半功倍。
多做业务
你就明白:所学的技术该用在哪。
多做用户量大的业务
你就明白:光会用技术,和用好技术是两码子事。
多找第三方开源
你就明白:原来工作摸鱼不是梦。
太随便用第三方
你就明白:某天需求一变,它兼顾不到,可以把你往死里坑,坑到你得去看源码。
第一次看完源码
你就明白:开始还是很讨厌的,等全盘搞明白了,发现“咦~有点意思”。
源码看多了
你就明白:自己的查克拉莫名的增多了。而且吐槽文档不全的习惯也渐渐少了,一个不服就跑去观摩别人的源码,顺便偷个师。
再往后,或许你的技术确实突飞猛进了,然而你却只会觉得编程本来就是这个样子的。
因为,但凡通过点滴付出,累积出来的结果,都是平淡无声的。
突然获得这么多支持,十分感谢大家。
知乎就是师兄的心得记事本,喜欢的可以关注哦~
书籍方面的,师兄会找个时间,专门出一波,以谢大家的支持。
相关 IT 高赞干货:
师兄总结的一波行业经验(精华版)
→
师兄多年来对编程的小感悟
→
→
师兄谈自学编程的小心得
(带过 10 来位新人入行的经验)
→
→
以下为冷门,但我自己很喜欢的知识点。
师兄讲编程的难,有趣又真实得心痛
→
师兄实践了多年的自律方法论
→
最后,
还是万分感谢大家的支持^_^。
学了OO, 熟悉了“设计模式”, 领悟了IoC和DI, 让我大概感觉到了程序应该有一些结构, 而不是简单的把逻辑用if-else写进去, 这是我感觉自己能力提高的第一次飞跃;
看SICP和CTM让我开始理解程序和编程到底是什么, 特别是对CTM里的最小表达力原则的理解, 这是我编程思想的第二次飞跃;
学了函数式编程思想为我打开了另外一个世界, 引导我去了解haskell, 去稍稍的学习了些category theory(这个是真的难...), 这解放了我编程思想的另外一个纬度, 抽象能力有了质的提高(主要体现在generic programming的能力提高, 高级类型的灵活运用), 我开始有意识的去降低核心程序的"熵"(程序的可能性越多, 各种可能性的概率越均等, 熵越高), 使得程序更容易理解(熵越低信息含量越低则越容易理解), 而把系统的灵活性(比如状态, config等)隔离在核心逻辑之外(这样使得变化可以在一个地方, 比如系统setup时, 集中理解, 然后用理解的setup来很简单的推理核心逻辑在这种setup下会怎样运转), 这样就使得程序的核心复杂度更加接近于核心业务的复杂度(业务的熵是本质复杂度无法用调整程序结构的方法降低, 但是, 本质复杂度也是可以降低的, 请往下看), 但是又没有写死整个系统的灵活度; 这是第三次飞跃;
然而, 最大的飞跃是当我最终把重点从编程本身转移开来之后, 当我开始去看分布式系统算法, 去理解各种云服务的特性, 去深入了解我所工作的领域或者说业务, 去了解和我们组有关系的其他部门的业务, 去了解ML(由于业务相关); 去了解需求获取, 怎样拒绝不合理需求, 怎样调整和简化需求(降低业务本质复杂度的关键), 甚至创造合理需求,去了解测试, 监控, 部署, 构架, 运维, 项目规划和人员部署, 思考为什么junior SDE会犯错, 帮助mentor别人, 甚至开始关心组内的技术文化建设;
这是因为“编程是最重要也是最不重要的事”
这是因为编程作为把思维变为实现的这个循环的最后一步(然后写好的程序会成为新的思考输入和基础,开始新的一轮迭代开发),它和一个项目一个系统的所有其他方面都息息相关:需求获取,问题抽象,测试,监控,部署,框架运用,系统间集成,灵活性,未来拓展性,易用性,系统健壮性,多版本实验性,高层业务决策等等,这使得编程变得无比重要(所有的一切都需要编程来最终落到实地),也毫不重要(编程被所有其他一切所约束和指导)。能够支撑这些所有上层思考的程序才是“好程序”,能够支撑所有这些思考的程序员,才是好程序员。学好/学会编程这件事是把所有需要思考的东西都弄明白都学好之后的自然结果。而把这些思考留给别人,自己只做思维和程序的翻译器(区分创造者和工具人的关键),根本无法写出好的程序来。这也是DDD(Domain Driven Design) 的精神之一 (关于DDD的精神,参见此文的最后一段, 阿莱克西斯:在做程序员的道路上,你掌握了什么概念或技术使你感觉自我提升突飞猛进? )
以上引用出自自学编程需要注意什么?
我觉得: 我们在积累技术能力的同时一定要开阔眼界, 这样才不会陷入一个"局部最优解" (随便逮着一个点都能开阔人类边界的天才除外); 眼界太窄以至于学了一点点东西就觉得自己"天下无敌"了, 是我们进步的大敌 (也是曾经是我最大的敌人);
啃完一本本书, 做完一个个lab
没有突飞猛进, 一切都是量变最终累积成质变!
但是会有那样一些时间节点,你会明显感觉到自己的编程能力确实有提高不少,能够实现更多的想法.
不过老实说,就编程能力上确实没有“突飞猛进”的感觉,都是逐渐的进步,量变引起质变嘛。
我们都是普通人,不可能像张无忌一样因跌落悬崖,意外获得《九阳神功》,从此开挂,走上巅峰。
只有靠不断的看书、coding、学习优秀开源项目,构建自己的计算机知识体系,并且在特定的领域不断专研,这样才能成为一个优秀的工程师。
下面聊聊我自己的编程学习之路吧。
我在大学之前完全没有编程经验,高考后,填的专业前几个也是清一色的传统工科,被软件工程录取纯碎是意外。
当时甚至很担心完全没有编程基础的我,上大学会不会跟不上。
后来大一,第一门编程语言就是学的C语言,怎么说呢,老师讲的,书上写的我都能看懂,但是一让我写一个大的程序,我就摸不到头脑,不知从何下手,学了半学期,也只能写写课后习题,算算水仙花数什么的。
而且当时对计算机缺乏系统认识,即便我知道指针就是变量地址,也很难理解它到底有啥用。甚至分不太清数组和指针的区别,以至于会出现对函数局部变量取地址返回这样现在看来很低级的错误。
大一上考完C语言后,我便在心里默默念想,这辈子再也不写C了,只是没想到的是,后来这成了我最爱的一门语言。
大一下开始学习数据结构与算法、数字逻辑这些计算机核心课了,此外,还学了一门当时我看来非常牛逼的语言—Java。
为啥说我当时觉得它牛逼呢?因为刚经历过C语言的摧残,发现Java丰富的类库,各种方便的工具类。再也没有指针了,变成了对象引用。
Java我学得很认真,当时还看过马士兵的Java Se教程。
自己也用Java写了不少好玩的东西,比如联机五子棋、HTTP服务器等等。这让我第一次感受到编程这么有趣,俗话说兴趣是最好的老师。
在学java的时候喜欢在网上搜资料,但总觉得各种博客上的知识过于零散,为了学好Java,我在知乎搜索各种书单,先后看了《Java编程思想》《Java核心技术卷》《Java并发编程》好几本书(不是全看哈,大部分主干章节
大一暑假在家自学了安卓,并写了几个app玩,但发现自己不太喜欢客户端,于是大二开学就开始学 Java 后台开发,从 Servlet 到 SSH SpringBoot,基本上都过了一遍,后来越来越觉得这条路就是在学各种框架,总觉得不太对劲。
在这里也分享一本帮助我拿到BAT 等一线大厂 offer 的算法笔记,是一位阿里大神写的,对于算法薄弱或者需要提高的同学都十分受用,算法一定是计算机学习的重中之重:
编程指北:Github 疯传!史上最强!BAT 大佬「LeetCode刷题手册」电子书开放下载了!
同时,大一暑假有大四学长学姐在学校广场摆摊卖书,我也买了些,其中有一本就是被称为计算机神书的CSAPP。
大二在上一些无聊的课时,我总把这本书带着,每节课可能会翻个几页,那时候看到汇编、内存管理、存储器层次我是真的云里雾里,因为还没学操作系统,C语言也学得很差。所以断断续续的看了几章,说不上学到了什么,但让我对这种枯燥的基础知识第一次产生了兴趣,有一种想彻底搞懂它们的想法。
为了看懂这本书,又去看了王爽那本《汇编语言》,重学了C语言,由于已经学了汇编,指针对我再也不是问题了,同时看完了《c和指针》、《C专家编程》、《C陷阱与缺陷》,C语言使用得也愈加的熟练。
大二上那段时间,学院里突然刮起全员学机器学习的风气,虽然不至于全部,但是真的是很多人都在学,于是我也不例外的加入了,先后看了点吴恩达的视频和西瓜书。跟着写了手写数字识别这种入门必做的项目,但是后来总觉得对机器学习、深度学习提不起兴趣,原因之一就是我觉得无法完全掌握每一步,了解每一步背后的原理。这让我学得不安心。于是ML的学习之路也止于大二。
大二是学习内容最丰富的时间,当时室友用 Python 写了抢课脚本,感觉很好玩。然后又跑去学Python,学爬虫。写了一堆爬虫,什么爬豆瓣电影、抢课脚本,玩了一段时间也没太大兴趣了。
时间来到了大二下,按照课程安排,开始上操作系统了。于是我又在知乎搜索“操作系统怎么学”,顺着一堆回答,我发现原来还能跟着别人写一个 mini OS,这对我吸引力太大了。于是我买了一本《操作系统真象还原》,这本书真的非常仔细,把写 OS 需要用到的前置理论知识、汇编、内联汇编全都给你讲清了。我一路跟着书写,写到了汇编开机打印出我的名字,再到后来进入C语言写内核各个模块,写到内存管理我就中断了,没有继续写下去,这也算个遗憾吧。
当时真的对这个入迷了,为了写Min os我还去看了Linux0.11的部分代码。把我的QQ签名改成了 jmp 0x7c00
(这句汇编就是将跳转到0x7c00这里,BIOS开始引导操作系统。
于是就这样,我越来越喜欢偏底层一点的东西,所以决定走 Linux C/C++ 路线,然而现在看来确实太年轻了,Linux C/C++ 在鹅厂好多也是用来写业务滴。。。
大二下在知乎、牛客网搜索学习路线,我大概清楚了需要看些什么书。于是开始了非常标准的 Linux C/C++学习之路。
前前后后看了《C++ Primer》、《APUE》、《UNP》、《深度探索C++对象模型》、《STL源码剖析》、《C++设计与演化》、《Linux内核设计与实现》、《Linux内核完全注释》、《effecitve C++》 、《effective modern C++》、《程序员自我修养》、《Linux高性能服务端编程》、《Linux多线程服务端编程》(知乎陈硕大佬写的)......,顺便还看了点muduo源码,自己模仿着基于epoll写一个reactor模型的web服务器,跟着知乎Milo大佬写Json库,总之,这段时期是写了一些小”轮子“的。
学习计算机一定不要想着速成,要下苦功夫,去啃那些经典书和源码,然后自己动手写,我大学整理了一套计算机必读的经典书籍,对于CS学习的同学帮助非常大,且十分系统,这部分我是会不断把它完善的,当成自己的小电子书库,不多,但贵在精。
我整理的这些书大家可以在这里获取,对于学习计算机的同学帮助非常大,且十分系统:
看的书越多,其实你越能找到自己的方向,大三上我就给自己学习定位:
深入C++语言(多线程)+ 存储(学习redis、leveldb)+ 网络编程(学习muduo,各种网络编程模型)+ 学习分布式(mit 6.824、ddia、google三大论文等)
基本上是沿着上面几个方向去展开学习的,有的看书,有的论文,也有的看博客看源码。总之,知识面在大三不断扩充,自己开始关注C10K、C100K这样的后台服务器开发高性能、高并发的解决方法。
值得一提的是,大三上我们学院有门System Programing的课,教材就是使用的CSAPP,因此我之前大二草草看完的书,得以再次翻开,这一次我把附带的是个实验也挨着挨着做了,收获良多,有位运算各种奇技淫巧,有Bomb lab刺激的打怪通关、也知道了buffer overflow attack.... 还有实现基本的内存管理等等。
印象最深的便是做bomb lab,一个个 phase 的通过真的很让人兴奋,我几乎是连着把这几个phase过掉的,当然头发也没少掉。
当时还写了个记录:
再到后来,我拿到了微信实习offer,然后顺利转正。
在我大三下拿到实习offer后,我开始做一些国外计算机课程lab,一方面有钱拿,而且还不低,靠这个我在大三下就实现了经济独立,另一方面这些lab很有意思,对提高基础和编程能力很有帮助。
现在我开了一个公众号「编程指北」分享编程学习方法、技术相关的一些东西,感兴趣的同学可以去关注下~
在这里列举一些我做过的觉得有意思的lab:
第一个是文件系统
这个玩意挺有意思的,就是要让你自己去设计一个文件系统,比如文件、数据块、目录等等,而且你要提供创建、读写、删除、随机读、随机写等等接口,然后通过 Linux 的 VFS(虚拟文件系统) 机制挂载到 Linux 内核中,然后就可以用系统调用 open、read、write 这些来在你的文件系统上进行读写。VFS 是Linux一个机制,它规定了 IO 接口,然后你去实现这些接口,你就可以挂载在上面。通过这个东西我深入的学习和了解了文件系统,报酬也是非常值的。
第二个是SVC
就是版本管理系统,类似 SVN 和 GIT的,但是相对 GIT 做了很多简化,核心的就是创建分支、分支合并、回滚、commit 这些,通过这个我又去详细了解了 GIT 的实现原理,并且自己写了一个简单版本的 GIT,受益匪浅,也赚到了几千大洋。
第三个是操作系统的锁实现
这个就是让你基于硬件的原子指令 xchg、cmpxchg 这些实现一个锁,这个需要内联汇编、汇编等知识,简直是硬核!!!做完这个也解开了我对锁实现的一些疑惑。
还有个是 Web Proxy
这个就更有意思了,要求用 C++ 写一个代理服务器,类似 Nginx 的代理功能,当然,相比 Nginx 弱鸡很多,
但是麻雀虽小,五张俱全,而且老外最有意思的是要求代理服务器对一些图片和 HTML 恶作剧,就是代理服务器随机的在原始服务器,返回的响应里 插入一些图片和文字,因为那天是愚人节。。。 不得不说老外还是很有趣的。
还有模拟实现 TCP 可靠传输的
这个就更硬核了,人家老外老师就是给力,直接做了一个网站,这个网站你可以通过 TCP 连接上去,然后你需要运行几个节点,互相发消息,他们之间的消息都会经过老师的网站,所以通过网站上是可以控制丢包率的,也能控制节点的拓扑结构,要求就是让你基于这种不可靠的信道,做出可靠数据传输!这简直就是翻版 TCP 嘛,超时重传、ACK、滑动窗口啥的都给我上!就是像下面图中一样,圆圈就表示你可达的范围,不同节点形成各种网络拓扑,可以调节网络 丢包率 Loss chance。
当然也有很多写算法的,数据结构实现的,图搜索的,也有做机器学习、深度学习的,反正各个方向都有。对这些Lab感兴趣的可以去我公重号「编程指北」后台回「lab」,我会不断更新汇总做过的一些lab和课程网站链接。
如果对这些lab感兴趣的,自己也想做的话,可以看看我的这篇文章
做这些 lab 真的实实在在的提高了我的编程实践能力,也算是检验了前期看那么多书还是有效果滴。(顺便还让我大学期间就月入上万。。。
所以写了这么多,再点次题吧,我认为自己编程能力突飞猛进就是在看完一本本大黑书、做完一个个lab、写下一行行代码之后。
附上大学期间买的一些书,毕业的时候大部分都卖了,因为实在不便携带:
这是带去图书馆自习室的书(常占位置)
这是毕业整理的书:
买这些书花了我不少钱,大家都知道计算机这些书一本就是五六十、七八十起步。大学四年光买书就花了几千块。不过我一直认为这也是我花的最值的一笔投资。
下面就是我自己整理的电子书,绝不是在网上那种打包下载的,而是自己需要学到某个方向的时候去网上挨个找的,最后汇总而成。这部分我是会不断把它完善的,当成自己的小电子书库,不多,但贵在精
我把大学时候这些电子书库、简历模板、博客汇总、谷歌大佬的刷题笔记都打包放在这了,点击下方可以直达。
最后真心想说一句,滴水穿石非一日之功,学习计算机还是需要沉下心来好好啃书、看源码、写“轮子”(注意不是在大学疯狂去写web应用做crud)。逐渐构建起属于自己的计算机知识体系,然后选择一个专业方向不断专研。
当然了,多刷题也可以提高编程能力,所以在这里也推荐一份我看过的谷歌大佬开源的刷题笔记:
大家觉得有帮助的话,也可以帮我点个赞,笔芯~ 记得关注我哟 @编程指北
------update---
————分割线——
很多小伙伴在评论区问学习路线, 我找来了Linux C++ 后台开发方向的,强烈建议看看这个回答,一定对你有帮助!
评论区还有小伙伴想要我的书单,这里也给出我以前写过的一篇文章,大家感兴趣可以去收藏下:
另外,推荐一篇我写的关于指针的文章,绝对深入浅出~
在这顺便推荐一个 Github 开源仓库,基本包含了常见的 CS 编程学习书籍,可以 star 一下,需要的时候直接去上面找书:
觉得有帮助的话,帮我 @编程指北 点个赞哟~
GitHub上有很多哪怕刚学编程都可以用的很开心的项目,比如 镇站之宝、让cxk来教你打篮球、对联之王、键盘钢琴家、斗图霸主项目、P站logo等等10来个!居然还拿了7万星!
我敢保证看完下面的几个项目,你收藏夹一定会多几个网址,越用越开心,用完之后高呼“GitHub大法好”、“女装才是正义!”~
毕竟作为一家每天都和程序猿/媛打交道的公司,GitHub那是每天必刷,小七早就从GitHub上珍藏了100+项目。这次小七从中精挑细选出来10个不懂编程、不是程序员也能用,并且越用越爽的项目~
总所周知,GitHub是程序员分享技术、同性交友、女装的圣地。
毕竟自学编程太苦了,不如~
小七随便从这个项目中里面给大家截两张图,让你们感受一下女装大佬的威力~
(老板要是发现我上班时间在看这张图片,一定会锤死我吧……)
言归真正,其实这个项目的本意是帮助不懂编程,非程序员的朋友学习使用GitHub。
为此其中一位女装(划掉)大佬专门在B站录制了教学视频,来帮助更多的同学学习GitHub的正确使用方式。
早日精通女装(划掉)GitHub的使用,打开新世界的大门,这也是我什么要把这个项目放在第一个的原因。
B站链接:https://www.bilibili.com/video/av34406290/
项目链接:https://github.com/komeiji-satori/Dress (温馨提示:自备营养快线)
这个项目基于深度学习技术来实现自动对对联,比如上面这个标题,就是AI对出的对联。
直接输入上联点击就可以得到下联。如果对内在技术感兴趣,也可以在项目内查看。
有的时候中间打一个逗号结果就截然不同了。比如
其实这个系统更擅长古风的对联比如:
“殷勤怕负三春意 ,潇洒难书一字愁。 ”
“如此清秋何吝酒,这般明月不须钱。 ”
“天朗气清风和畅,云蒸霞蔚日光辉。 ”
你能看出这是AI对出来的对联吗?还不收藏起来,以后你就是对联之王~
项目地址:https://github.com/wb14123/seq2seq-couplet
在上班的时候,一直开着PC版微信跟网友吹水聊天很容易被老板发现吧。
把微信伪装一下,瞬间变成有道云笔记(应该特别适合网易的朋友们)在老板眼皮底下光明正大的摸鱼!
项目地址:https://github.com/YGYOOO/WeChat-Shelter
这个项目堪称传奇,在GitHub上拿到了整整X万星,被无数人称赞为新手必学项目,却偏偏又可以无需任何修改,就在任何平台、版本的IDE上运用,堪称有史以来最伟大的工程没有之一!
为了尊重原作者和保持神秘感,请大家去项目中查看。
我上面的话,可不是我自己评价的,都是网友们的留言:
项目地址:https://github.com/kelseyhightower/nocode
可以调节字体颜色,大小。但是为了保证图片是原汁原味的P站风,不能修改字体。
非常适合做一个专属于自己,充满视觉冲击力的logo。
千万不要问我什么是p站哦,要知道无数程序员同学的梦想就是加入P站汉化组。一个营养快线管够的神奇网站。
项目地址:https://github.com/bestony/logoly
只要有电脑,只要你会打字,今天开始你就可以体验一次弹钢琴的感受了~
这是是作者用Vue + Tone.js做的一款web应用,快来和朋友们一起弹小星星吧
项目地址:https://github.com/WarpPrism/AutoPiano
不能说的太多,说多就被和谐了,下面这3个下载器会让你百度网盘的下载速度“提高”
项目1:https://github.com/b3log/baidu-netdisk-downloaderx
项目2:https://github.com/peterq/pan-light
项目3:https://github.com/iikira/BaiduPCS-Go
买房就和高考一样,决定着你的下半生,考验你多年打下的基础,不过不是人人都有资格参加……
高考前可以刷各式各样的辅导书,来帮助我们在“终局之战”拿到高分,但是买房前就非常缺乏既全面又理性,还不是广告的攻略。
这个项目是作者基于17年自己买房经历总结出来的攻略,因此由于时间关系不少数据大家参考一下就可以了,作者分析和罗列的思路非常有价值,值得我们学习,也有非常多实用小知识。
原文非常详细、全面,总计2万字左右!准备买房的大佬们可以去看看哦
项目地址:https://github.com/houshanren/hangzhou_house_knowledge
老实交代,你是不是经常准备写个笔记、文章,打开word后瞬间灵感便秘,没有意思,码不出字?
有什么办法能让自己短时间内,激情四射疯狂码字?
有一位程序员大佬给出了答案:“不许停止码字,停下来就删稿!”
而且这位大佬还用了喝两杯葡萄酒的时间,把这个理念做成了一个程序!并且放在了GitHub上。
感受一下大家的评价吧:
"丧心病狂","写作者的噩梦源泉","这才是真正的生产力工具!"
真的不来试试吗?这可相当刺激~
刚开始码字的时候我慌的不行,时刻都在担心到5秒了,被删稿子,可以到了后来,我居然非常习惯了,而且码字速度也快了~
毕竟如果你被删3次稿子,估计你也会很淡定的被删掉的内容重新打出来。感觉我未来的码字效率都提高即将10倍
项目地址:https://github.com/maebert/themostdangerouswritingapp
话不多说,直接上图
项目链接:https://github.com/xtyxtyx/sorry
上面是偏娱乐的,下面就来正经的了!其实你问出这个问题,可以理解为在问如何持续编程,并且提升自己。
先用1-2h阅读学习一段时间
然后默记一段时间
随后自问其中的知识点
最后把学到的知识实践(并非原版,已经过提炼)
换在Python上面,你很可能是已经因为长时间背教程/书籍上的内容,大脑已经非常抗拒学习了。
你需要的是能给快速用Python实现、耍起来的小项目。
得到足够的正反馈,让你感到愉悦,这样才能更快更高效的继续学习。
作者:寒小阳,也是我们七月在线的讲师。
https:// blog.csdn.net/han_xiaoy ang/article/details/49797143
这个项目列举了30+个用Python,就能简单、快速应用的小项目
1.batch_file_rename.py - 批量重命名指定目录下面所有文件的后缀名。
2.create_dir_if_not_there.py - 检查用户主目录中是否存在目录,如果不存在则创建目录。
3.快速Youtube下载器 - 使用aria2c多线程快速下载YouTube视频。
4.Google Image Downloader - 查询指定词语并从Google中下图。
5.dir_test.py - 测试目录是否testdir存在,如果不存在,它将为您创建目录。
6.env_check.py - 将检查是否已设置所需的所有环境变量。
7.fileinfo.py - 显示文件的信息。
8.folder_size.py - 统计文件夹大小。
9.logs.py - 将搜索*.log指定目录中的所有文件,对其进行压缩,然后按日期。
10.move_files_over_x_days.py - 将指定年龄(以天为单位)的所有文件从源目录移动到目标目录。
11.nslookup_check.py - 这个简单的脚本打开文件server_list.txt,然后为每个文件执行nslookup检查DNS条目。
12.osinfo.py - 显示操作系统的一些信息。
13.ping_servers.py - 根据提供的参数,此脚本将ping与该应用程序组关联的服务器。
14.ping_subnet.py - 在提供前3个八位字节后,此文件将扫描可用地址的最终范围。
15.powerdown_startup.py - 此文件通过服务器列表并ping机器,如果它已启动,它将加载putty会话,如果不是,它将通知您。
16.puttylogs.py - 此文件会压缩给定目录中的所有日志。
17.script_count.py - 统计目录下不同脚本。
18.script_listing.py - 此文件将列出给定目录中的所有文件,并遍历所有子目录。
19.testlines.py - 这个简单的脚本打开一个文件,打印出100行。
20.tweeter.py - 用脚本发推特。
↓↓↓
公号后台回复“666”。即可免费获得 七月在线【面试求职 第四期】课程+最新升级版《名企AI面试100题》电子书。
《名企AI⾯试100题》涵盖计算机语⾔基础、算法和⼤数据、机器学习、深度学习、应⽤⽅向 (CV NLP 推荐 ⾦融风控)等五⼤章节,每⼀段代码、每⼀道题⽬的解析都经过了反复审查或review。
部分内容展示
1.【Python基础图文教程】(七月在线编写的电子书)
为方便0基础的学员快速学习Python,不断降低学习门槛、理解难度,我们七月在线做了140页的Python图文教程,极尽通俗,最新版本近乎做到了中学生也能看懂。现在免费送给大家!
2.《Python编程快速上手》
本书的不仅介绍Python语言的基础知识,而且还配套了一些项目,书籍质量很高。适合没有编程经验的同学
3.《Python编程:从入门到实践》
太太太太经典了,和上面的是一个系列,注重实战,认真看完,做完每个项目,你得到的知识一定对得起你的时间。适合没有编程经验的同学
4.《像计算机科学家一样思考Python (第2版)》
适合有编程基础的同学,这本书有点标题党……看完不一定能变科学家2333
本书重点是如何思考、设计、开发的方法
《深入浅出Python》《Python基础教程》适合有一定编程基础的同学看。
个人建议入门书籍买其中1-2本,认真看就可以了,编号并非排名。
1.《利用Python进行数据分析》
书中详细讲解了有关numpy、pandas、matplotlib等模块的常用函数技巧,同时也结合了一些案例加以说明,书末也简单介绍了Python在时间序列问题上的处理和金融与经济方面的应用,对于初学者,这本书可能更适合作为配合课程使用的教材,而非自学用的主力教材。
2.《数据挖掘导论》
非常适合数据挖掘入门,内容详实,条理清晰,枚举具体的分类实例,来简要说明算法的流程和意义,能让新手快速总览全局,掌握该领域的基本要点
3.《集体智慧编程》
数据挖掘方面的入门书籍,在数学算法方面没有深入讲,也提了部分算法具体怎么用,就是有点太经典,比较老
4.《统计学习方法》
偏理论了一点,对读者的数学基础有要求,有不少算法推理过程,非常全面系统地介绍了统计学习的主要方法。
1.《流畅的Python》
不需要多说了,作者NB、内容深入有很多高阶内容、剖析编程细节、有不少代码示意
2.《Python 编程实战:运用设计模式、并发和程序库创建高质量程序》
这本书最大的缺点就是名字太长……书中通过大量实用的范例代码和三个完整的案例研究,全面而系统地讲解了如何运用设计模式来规划代码结构,如何通过并发与Cython等技术提升代码执行速度,以及如何利用各种Python程序库来快速开发具体的应用程序和游戏。
3.《Python编程》
是Python应用方面的优秀书籍,涵盖了Python编程的方方面面,从系统管理到图形界面编程,从文本处理到网络编程,从数据库到语言扩展……这些主题的探讨中,还提供了大量的实际代码,通过对这些代码的研读,对读者的Python编程水平以及实际业务问题的解决都有帮助。
4.《Python核心编程》
全面涵盖当今应用开发中的众多领域、为中级Python开发人员提供实践方法、涵盖大量实用的代码案例、每章末尾的习题有助于巩固所学知识。
5.《Python高性能编程》
“ 尽管Python在学术和工业领域很流行, 但人们也经常由于Python程序运行太慢而放弃它。本书通过全面介绍改善优化Python计算速度和可扩展性的策略,从而消除人们的这种误 解。”——Jake VanderPlas 华盛顿大学
觉得Python慢,先别急着骂Python…… 读读这本书也许会发现你的代码、架构有进步空间
更有七月在线年终大回馈,组队开宝箱赢取精美好礼!
这两个游戏都有自己的问题。但严重程度完全不一样。
赛博朋克最大的问题是人力不够,没有人手把愿景在限期内做出来,导致后期狂砍。但从已有的成品来看,CDPR是完全有人才有能力把东西做出来的,只不过没时间做。光影效果,已有的垂直城市设计,以及主线和很多支线任务的演出都有毫不输巫师3的气质,尤其是日本城浮空平台那关,无论是游戏流程还是画面还是音乐,都把类似银翼杀手2047的那种气氛和感受做到了极致。有人说CDPR的人才都跑了,或者CDPR傲娇了开始放水,这并不客观。2077确实是个半成品,主机优化的问题尤其严重,但你关注已经完成的部分,用高配置PC玩,其质量并未令人失望,依然是巫师3的水准。
2077就像是一个优等生忘了做背后的几题的考卷,开天窗导致不及格,但已经做了的题目还是正确率极高的。
谈到E3的demo,单从画面上讲你很难说它缩水了。只不过CDPR没告诉你想要E3画面,就得上3080+光线追踪。。。
我猜想没有光追的话,游戏在大多数情况下也是可以达到光追的效果的,只不过人工工作量会很大,有些地方需要离线烘培,而有些地方需要人工设置虚拟光源。CDPR可能发现项目后期工作量太大搂不住了,就上了光追这个大杀器。。。
至于无人深空,现在口碑很好,但我要不客气地讲,这个游戏到了今天依然是垃圾,只配卖$19.95,打折的时候卖2.95的那种。
Hello工作室自始自终都没有把初始愿景实现的技术能力。
你可以看无人深空进入大气层的技术实现。先是一段飞船进入大气层摩擦发红的特效,然后可以看见地形通过一种非常粗糙、视距很近的情况下刷新出来,并且刷出来的地貌和太空中看到的地貌完全不同。所以从头到尾,hello工作室都没有类似精英危险和星际公民的无缝行星登陆技术。
无人深空更新了十几次,并没有触动这个游戏除了机械刷就没有任何深度的本质。这是一个极其无聊的游戏。但它刷了两年的DLC,玩家也就给他点面子,没功劳有苦劳。它每次更新我都会进游戏看看,但玩不了半小时就会放弃。一是实在无聊,二是它美术设计和渲染水平有限,色彩及其刺眼。比如在母船机库里,到处都是亮瞎狗眼的点状光源,但这些光源不会照亮周围的任何东西,看的时间长了有种不带护目镜看焊接的流泪效果。你说更新了那么久,这么简单的问题都不解决,有什么用呢。游戏中随处可见低级设计的痕迹,比如说有很多行星上有一种可以卖钱的球,这种球没有任何贴图,只有亮瞎眼的纯白色材质,在HDR效果下极其刺眼,但它又不是个光源,放在地上不会照亮周围任何东西。这种打开Blender就存盘的建模初手垃圾素材居然也能放在游戏里,真是活久见。
所以无人深空就像是一个学渣冒充学霸,把期望提得无限高,却每题都答错结果接近0分,被骂,然后花了漫长的时间在那里订正,一题一题的改,最后终于接近30分了,然后获得了大家的赞赏,全然忘记了它改了那么久依然是不及格。
无人深空的贴图我就不贴了,首发的时候真是纯垃圾,基本上是2008年魔兽世界首发的那个水准。现在也依然是垃圾,开个HDR看着眼睛都疼。
其实我从小到大见到的残障人士并不是很多,小时候以为是残疾人数量很少,长大了才知道是因为我们给与他们的支持可能还太少,不足以让他们可以自在地出现在大街小巷。
所以看到这个康复师在镜头前侃侃而谈的样子,我觉得很高兴,因为他自信、耐心、温和,和大多数人没什么两样。如果我是一个听障患者,我一定能从他的身上汲取到继续生活下去的力量。有他的帮助,越来越多的听障朋友才能鼓起勇气走上大街,过正常的生活。
小时候接触到的残疾人士,大多不是这样。比如我印象最深的是一个哑巴爷爷,他应该是从小听不见,所以也不会说话,日常就是默默地坐在老城小巷的一个角落,勤勤恳恳地给顾客修鞋。我上下学常常会经过他,但是没什么交集。
后来有一次,我妈让我把家里的鞋拿去给他修,修完以后要给钱的时候,他居然摆手不要。旁边一个卖菜的大妈解释了我才知道,原来是爷爷看我年纪太小,不收钱。说实话,我日常经历的更多的是看我年纪小,多收钱的(比如买菜),第一次被“免单”,对象还是个赚钱不易的聋哑老爷爷。
结果回家我和爸妈说没给钱,我爸妈还开玩笑说以后都让我去,给我整生气了,后面家里有鞋要修的时候,我都让我爸妈自己去。
现在基本上也没人修鞋了,不知道老爷爷还在不在世,愿善良的人永远被温柔相待。
怎么没人提《圣斗士星矢》啊?
这个系列作品的特色不就是回回都是一部的戏就半天时间么?
黄道十二宫篇:纱织中了天箭座的箭,必须12小时内突破圣域十二宫。
北欧篇:奥丁代言者希露达被海皇戒指蛊惑令冰川融化,纱织代替希露达阻止冰川融化但是只能坚持12小时,必须在时限内摘下希露达的戒指。
海皇篇:纱织代替人类承受波塞冬的洪水,应该也是只能支撑一天之内的时间。
冥王十二宫篇:被哈迪斯复活的圣斗士要在12小时内取下雅典娜的首级,实际目的则是为了雅典娜去冥界并且唤醒女神圣衣,12小时候被复活的圣斗士们就消失了。
冥界篇:记不清打了多长时间,但从纱织被塞到缸里抽血开始到解决应该也是一天之内。
黄金魂:在本篇剧情里有好几天,但对应到冥界篇时间仅仅发生在冥界篇12黄金击破叹息之墙到打死神之间。
火星篇:马尔斯获得阿丽娅的权杖后建立起巴别塔吸引火星,会在12小时内毁灭地球,主角们必须在12小时内突破新十二宫。
土星篇:这篇好像打了很多天……
克劳备忘录也好,凯南电报也好,有两大共同点。首先,都是以现实主义的眼光去分析双方的关系。然后,给出的建议都是阳谋,并不是什么不可告人的阴谋,执行起来需要的不是鸡鸣狗盗的小聪明,而是惊人的意志力。
而美国现在战略界现实主义被边缘化,我推测,布热津斯基,基辛格那帮人应该写过不少。不过没所谓,美国能执行大战略的时代过去了。现在这一代精英上半年能管下半年就已经很了不起了。一个需要两代人以上持之以恒去完成的大战略,搞出来他们也执行不了。
冷战时期,从杜鲁门艾森豪威尔到肯尼迪尼克松,最后到李根老布什,个人性格和政治偏好差距不要太大,但是都忠实地完成了他们历史任务,沿着围堵政策做下去。这种战略定力和延续性,世间少见。在中国领导集团上能看见一些相似的东西,但是我们离得距离太近,反而看不清。但在美国精英层身上完全看不到这一点。
个人愚见。
曹校长那还不叫造假我真是不知道什么才叫假了。
国内学术圈一直就这个__样。
靠着各位学阀做出这样的research,写出这样的paper,我相信五年内超越美国不是问题。