招新
时间方面
社团寒假活动是不需要留在学校,在家里即可完成。
日常的任务估计每周保守估计需要7~12小时才可以完成。
社团收费
社团收费还没决定,社团本身会尽量做到收支平衡,不会另收费。
平时活动(计划)
1. 日常网络资源分享、程序员杂志分享及博客博文撰写分享
2. 基础内容:csdn的挑战赛(http://club.youkuaiyun.com/module/club/student/programming_challenges)和usaco(http://cerberus.delos.com:791/usacogate),这是成为一个程序大神的基础,简单有效。
3. 各方向(网页&手机软件,acm,硬件,黑客技术)实用技术学习。
4. 每周举办一次讲座,一些学长基本的经验分享。
5. 每年的云计算大会(每年5月)和移动开发者大会(每年11月),自费。
寒假具体计划
2. 各方向具体内容学习。
3. 寒假中以及寒假结束以后的交流讨论和学习进度检验。
各方向具体内容
网页&手机软件(林阳辉负责):
这个方向主要是实际的软件应用和软件开发,目标是开发出实用好用的软件,因此这个方向会涉及到很多的方面,即应用软件语言基础语法,程序架构,数据库与其他数据源,软件开发流程与团队合作,UI设计与人机交互,软件测试。
简单的介绍一下,在网页开发中,常涉及的内容有:html标签、php服务器端语言、css样式属性、javascript浏览器语言(与java无任何关系)、mysql数据库。网页的应用一般分为客户端(浏览器,例如ie,chrome)和浏览器端(服务器)。常常用html标签标示网页中的内容,用php和mysql作为服务器端语言,服务器端的任务常常是保存和处理各种信息。用css和js(javascript)作为客户端程序,客户端的任务一般是把数据美观的展示出来。
如果是在安卓/iOS(苹果手机操作系统)开发中,那需要的语言就将是Java(安卓)和Object-C(iOs),这两者一般使用的数据库是Sqlite,java/OC(Object-C)既担任数据处理的任务,也担任界面展示的任务。
当然,以上说的仅仅是语法基础,可以说距离开发一个软件差距还是有一些大的,实际软件开发中,整体架构常常比语法细节更重要,但是若是语法都不了解,那么一切都将是空中楼阁。
具体说一下寒假的学习任务,可以自选一个内容就行:1. 网页前端:大致了解HTML标签,了解CSS设计语言中的大部分属性(文字、段落、定位、边距、盒模型、背景等等),了解js的作用和简单的语法。推荐书籍:HTML CSS JavaScript标准教程: TP393.092, HTML, CSS, JavaScript整合详解 TP393.092,或者其他书籍,建议刚开始学习借阅各种技术混在一起讲的,这样东西少容易理解。推荐网站:http://w3cschool.cn/
2. 网页服务器端:了解wamp的配置以及作用,大致了解HTML标签,了解php的运行方式,了解mysql简单操作(sql语句)。php书籍较多,不再具体给出推荐,建议找入门书籍,越薄越好,注意不要涉及框架、php高级编程等内容。推荐网站:http://w3cschool.cn/,php语法参考:http://www.php.net/manual/zh/index.php
3. 安卓或者iOS:了解java或者Oc的基本语法,知道java或者Oc程序独立运行方法,了解java/OC在安卓/iOS开发中的作用,写过简单的安卓/iOS程序(如helloWorld等)。Java入门书籍较多,自行寻找,安卓推荐书籍:Learning Android,OC和iOS入门书籍建议找一本就可以。注意,安卓和iOS可以就学一个就。
4. UI交互设计,这严格的来说已经不属于编程范围,但仍然列出,如果有兴趣,我可以另推荐其他高手。
重要补充:除非你用一门技术解决了真正的问题,否则你就没有在真正地学习它,所以建议寒假中时常用QQ或者邮箱联系(推荐),我会不断地指导你实际软件开发中如何应用,并且会给出实际例子。
ACM方向(李嘉鑫负责):
ACM国际大学生程序设计竞赛(英文全称:ACM International Collegiate Programming Contest(ACM-ICPC或ICPC)是由美国计算机协会(ACM)主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近30多年的发展,ACM国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。
ACM-ICPC竞赛是一项对算法要求很高的竞赛,因此我们平时的学习与训练的主线也就是算法了。自然科学的基础是数学,算法也不例外。在学习算法的同时一定要努力提高自己的数学水平,尤其是离散数学、线性代数、概率论以及各种数论中的数学知识,深厚的数学功底才能支撑着你继续前进。
在ACM中,我们常用的算法有:模拟、搜索、动态规划等等。想要参加竞赛首先就必须熟练掌握这些基本算法。所以,我认为我们在寒假里建议完成以下工作:
1. 对各种数学知识进行了解,这是你学习算法的基础。
2. 初步了解一些基本算法,如:递推、递归、各种排序、深度优先搜索、广度优先搜索、动态规划等。
3. 刷题是巩固知识的唯一方法,建议选择一个自己喜欢的平台(如POJ、HDU等),静下心来刷题。
PS:处在不同阶段的同学可以看的相关书籍是不同的,如果需要推荐可以来联系我。
硬件与嵌入式方向(王毅负责):
PS:详见附件
1. 尽量先在网上查一下关于单片机的知识;
2. 推荐先学51单片机(比较简单);
3. 在学习单片机编程前,请先学习一下c语言;
4. 51单片机开发板推荐郭天祥的;
5. 在学习单片机的同时要补充一下电路方面的知识;
6. 有问题联系我,王毅,QQ:793744727;手机:15150045178
安全与黑客技术方向(辛流通负责):
比起把精力放在如何使用各种工具去攻击,我们的重点在于去深刻理解并发掘各种漏洞,探讨系统和程序底层的运行机制,这是一个技术要求极高的项目,不仅要求大家有着扎实的理论基础,更要有过人的实践能力和丰富的想象力。当然,给大家各种任务极具挑战性。但是从此过程中,你获得的不仅仅是各种攻击手法,还有对程序和操作系统更深入的了解,程序代码分析能力,调试程序的能力,进而帮助你在系统级开发,驱动开发以及程序逆向分析等方面取得进步。
这是个知识面丰富的领域,你需要充足的知识来保证你的工作。如何真刀真枪的分析病毒样本,如何脱掉PE上层层的保护壳,如何定位系统漏洞,如何抓“肉鸡”,这都离不开勤奋的努力。
当然,努力的过程是“枯燥”和“索然无味”的,对着满屏幕黑白二进制01看上半天,谁都会头疼,所以,这个天地是属于有兴趣,够执着的人,属于为了梦想不懈努力的有坚定信念的人。
寒假初学者学习任务:
1:汇编语言
不懂得二进制数据就无从谈起安全技术,汇编语言是重中之重,熟练运用不是一朝一夕能做到的,循序渐进是不错的主意,从16位的8086实模式汇编开始,在优盘上构建一个DOS系统,来开启你的汇编之旅。
推荐书目:汇编语言 王爽 著,清华大学出版社,特别适合初学者,上手难度很低。
2:C语言
在JAVA,Python等语言大行其道的今天,C在系统和硬件级编程的地位依旧无可撼动。高度自由、优秀的控制力和其他高级语言的无法比拟的高效率使C成为内核和驱动程序的不二之选。
推荐书目:《The C Programming Language》,C语言的权威经典。
3:基础扩展
Linux系统,网络知识,在之前基础上有能力的同学可以尝试一下使用反汇编器分析自己写的C代码,尝试深入了解。
推荐书目:《IDA Pro权威指南》
技术是纯粹的,有一群志同道合的人在一起,大家可以互相探讨互相进步。