非铸体吧 关注:2贴子:45
  • 3回复贴,共1

IT科普活动第四天内容整合

只看楼主收藏回复

今天我们继续新的内容吧^-^


1楼2014-10-21 19:47回复
    今日IT新闻来啦~
    或许你也患上了开发瘫痪症

      英文原文:You Too May Be A Victim Of Developaralysis
      亲爱的开发者们:你们是否因为自己只精通于三大设备平台的八种编程语言而惴惴不安?又发现一个 JavaScript 框架是否会让你不寒而栗、愁眉苦脸?你是否曾经因为无法确定哪个云平台最适合而把业余项目一再推迟?
      或许你也换上了开发瘫痪症(Developaralysis)。颤抖吧,这个病是治不好的。
      如今开发者们可选的技术方案多到令人发指,让人眼花缭乱,透不过气来。过去几年里,我拿着别人给我的酬劳,写过 Java、Objective-C、C、C++、Python、Ruby、JavaScript、PHP(对不起,这个也算),用过各种各样的 SQL/键值/文件数据存储技术(MySQL、PostgreSQL、MongoDB、BigTable、Redis、Memcached 等等)。我是否自我感觉良好?上帝啊,一点也没有。我反而感觉到愧疚,因为我还没有用过 Erlang、Clojure、Rust、Go、C#、Scala、Haskell、Julia、Scheme、Swift 或者是 OCaml。
      我就是一名开发瘫痪症患者:软件产业发展太快、任何一个人都无法跟上,从而对我的意识造成了毁灭性打击。
      上面提到的几乎任何一种语言,你都会找到无数可选的框架、套件和库——看得头都要爆炸了。如今仅仅是把 JavaScript 的框架和库的所有排列认真评估一遍就要花上几个月的时间。另外,你知道 Ruby 语言有多少种 gem 包吗?有多少种 iOS 框架吗?有多少种 NewSQL 或 NoSQL 的数据库技术吗?更不用说从 Hadoop、Spark 与 Google Dataflow 中进行选择了,究竟是用 Avro,还是 Thrift,还是协议缓冲区,等等,等等……
      还好,移动领域已经简化到了 Android、iOS 两大垄断平台——尽管也隐藏着一些交叉代替方案,比如 Xarmarin 或者 PhoneGap、Sencha 这样的跨平台 HTML 技术——但是确定在哪个平台上部署后端、如何部署又会让你头大。我开发过的各个系统部署在 Heroku、Amazon Web Services、Google App Engine、Google Compute Engine 以及 Parse 上面……这让我感觉非常糟糕,因为我对 OpenStack、Force.com、Azure、Appfog 一无所知,好多 AWS 服务我也从来没有真正用过,说多了都是泪。
      I Am Devloper @iamdevloper
      2014 年编写简单网站的步骤:
      1.安装 Node
      2.安装 Bower
      3.选择 CSS 框架
      4.选择敏捷的方法
      ……
      47.写几行 HTML 代码
      如今的开发者面临着太多的选择,以至于使用的许多工具仅仅是用来管理另一堆工具:比如 Bundler、Bower、CocoaPods、Pip 等等。这些东西太棒了!我完全离不开它们!别高兴得太早。你开始使用另一堆工具后,等用到一半的时候你真正理解了它们的内容,你开始觉得这样的配置还不够用,你有点想要把它们重写一遍了……也许再找另一个工具代替……
      可悲的是,如今开发者可用的语言、工具、框架以及平台的多样性和绝对数量庞大到让人畏惧。当然没人会承认这一点。所有人都想装作精通所有语言的编程大师。然而事实却是,我们都已经深陷于开发瘫痪症之中无法自拔。
      即便收集了各种信息做出了最明智的选择,结果往往也适得其反。比如说,在项目开始前,你真的花时间分析了所有的可能,克服了由此产生的学习曲线,结果却被一些用着 PHP、Swift 这样易于上手的语言,写着表情符号变量名的小屁孩抢了市场先机——
      ——不过另一方面,如果你选择使用 Swift 和 PHP 的话,你就会生活在无休止的恐惧之中,担心一些C#/Haskell 程序员高手很快就会做出更好的产品几百你,就像保罗·格拉汉姆(Paul Graham)很多年前用 Lisp 语言编写 Viaweb 那样。回忆往昔,他这样写道:
      当你选择了技术之后,你必须要忽略其他人在做什么,全心全意思考怎样做到最好……事实上我们确实有一个秘密武器……我们开发软件的速度超出了所有人的想象……我们用一种全是括号的语法奇怪的 AI 语言编写出了我们的软件。
      再说回开发瘫痪症。我们应该选择已经掌握的技术吗?这样我们就能立刻动手开发,无需克服学习曲线,但是需要生活在恐惧之中,担心其他人在以更好、更快、更优雅的方式实现同样的产品,担心到了明年我们的技能就跟不上时代、丧失竞争力了。还是应该选择未知的新技术?因为我们热爱学习,更好的工具使用起来不仅更加有趣,而且能够带来巨大的竞争优势……付出的代价则是大量的时间、精力和认知负荷。
      这个问题太难回答了!不存在绝对正确的答案。因此每个月都是开发瘫痪症发作月。我马上会做好五颜六色、闪闪发光的丝带给你们佩戴,只要等我选好用哪种 3D 打印机、哪种微控制器、哪种 LED 软件、哪种无人机系统就行了。恐怕要麻烦你们期待很久很久了。
    来自: (techcrunch.cn)


    2楼2014-10-21 19:48
    回复
      首先小B教大家完成你们的第二个java程序
      虽然也还是控制台程序,但是从基础学起还是很有必要的嘛,由于小B只是为大家科普不是设立专门的专题来教大家,所以在讲完这第二个程序后就不会再讲了小B也就只能给大家开个头,如果大家有真心想学的可以去买一些关于java编程的书,之后还会给大家介绍多几个主流编程语言,也欢迎大家和小B交流下哦~


      3楼2014-10-21 22:43
      回复
        [第二个java程序]
        大家看过[第一个java程序]的开发过程后,应该对java开发有了一定的认识,那么小B今天将带领大家在第一个java程序的基础上进行扩展,不知道大家上次的java程序的有没有将待编译文件保存好,如果没有保存或者没有编写待编译文件的童鞋,请重新创建一个文本文档(*.txt),文件名可以任意命名,最好命名为英文,中文可能会出现或多或少的问题,那么我们打开这个文本文档,在里面输入上次java程序的代码~
        上次java程序代码:
        //我叫做注释,所有在"//"后面的文字都为注释哦.
        //写注释不仅便于自己更加能够理清条理,还有助于人更容易看得懂你的代码的含义
        //定义了一个叫做"a"的类.
        public class a
        {
        //java程序的主入口方法,也就是说,程序将从这里开始运行
        public static void main(String args[])
        {
        //向控制台(即dos窗口)输出“小B陪伴您”
        System.out.println("小B陪伴您");
        }
        }

        如果输入完毕,那么我们就开始 修改大法↖( ̄▽ ̄")
        我们原代码的功能仅限于在控制台打印(输出)一句话,那么今天我们来做个简易加法计算器吧~
        首先我们都知道加法运算的算法,然后就得了解下我们将要设计的小型计算器的原理:
        1,首先控制台打印出一句话,让用户输入第一个加数(例如“请您输入第一个加数!”)

        2,接下来用户输入的值将会被暂时保存起来
        3,再让控制台打印出一句话,让用户输入第二个加数(例如“请您输入第二个加数!”)

        4,用户输入的第二个值也会被暂时保存起来
        5,让用户输入的两个值相加得到结果并输出到控制台
        内么,只需要补充和修改原代码几句代码即可完成啦
        第一步:输出“请您输入第一个加数!”到控制台
        代码:System.out.println("请您输入第一个加数!");

        第二步:接收用户输入的数据,这里我们将会牵扯到变量的概念,关于变量大家在初中应该有学习过,变量变量从字面意思上看就是会改变的量与常量相反,而在编程中变量的意思也一样,只是编程中的变量会分出各种数据类型的变量,以下小B例举了几个常用的变量类型:
        int:整型变量,一般用来存储整数数值,例如100、50000等整数数据,存储的大小范围有限(具体可百度),与int相似的还有例如long变量等,long比起int它能存储更大的数据
        String:字符串变量,即用来存储语言文字,例如“你好”、“hello”、“good morning”、“*^&%^$%^&$^”等等这些就是字符串变量
        Double:双精度浮点变量,说白了就像我们数学中的小数,double也就是最后保留小数点后两位数,0.00,它与单精度浮点变量(float)也很相像,小数点后保留一位,不过比起double它比较不常用
        Boolean:布尔型变量,可以理解为开/关,经常做英语课本中的课文内容判断题的童鞋应该对true和false这两个词很熟悉了,即“真”与“假”,而boolean变量中的值也就仅有这两个。
        今天我们要设计一个简易加法计算器那么意味着我们绝对离不开int变量,由于是第一次做所以就不用double来做了,也就是说假如用户输入的值是小数时会出现错误。
        那么我们就来建立一个int变量吧!,在这里还会牵扯到全局变量和局部变量的问题,全局变量在一个类中指的是这个变量可以在这个类中自由使用,而局部变量通常处于类中的一个方法(代码块)中且只能在这个方法中使用一旦超出了该代码块的范围就无法使用,而全局变量定义后除非这个程序线程已被结束,否则这个变量的值将驻留在内存,影响电脑运行速度,而在方法中的局部变量一旦该方法执行完毕便会自动释放掉这个变量。
        我们在这个计算器中只是暂时需要一个变量来存储一个用户输入的数据,那么我们也就只需定义局部变量即可

        我们需要几个int型变量呢?分析一下,首先我们要接受两次‘用户输入的数据,所以我们得定义两个变量来暂存那两个数,变量的名称可以自定义,小B就直接命名为a和b啦
        代码:int a;
        int b;
        放在哪呢,一般为了能够清楚地看到到底定义了多少变量以及变量名和变量值都会把变量放在最前面(这里当然是放在代码块中的最前面)

        第三步:我们就要接受用户输入的值并赋值给变量,这里接受用户输入的值将会用到java中的一个包;包是什么呢,我们可以理解为里面装有各种方法,例如接受用户输入的数据,这就是一个方法,而这个方法就被装在某个包中,如果我们没有导入那个包,那么将无法去使用这个方法,所以在使用这个方法前我们得先导入装有这个方法的那个包导入。
        代码:import java.util.Scanner;
        import就是导入的意思,导入Scanner包,一般导入包的代码都要放在开头

        这样我们就导入了这个包,就可以开始使用这个方法啦
        接受用户输入的数据
        代码:java.util.Scanner ?=new Scanner(System.in);
        问号即要被赋值的变量,但是这个方法是让用户输入字符串值(String),而数与数相加必须是int、double等数字类型的变量,所以这中间得有个转化过程,即把用户输入的字符串值(String)转化为整数型(int),所以问号的变量是字符串变量,这个变量可以直接在这个方法中定义不用去像前面两个局部变量一样去定义,所以问号可以是除a、b外的非关键字合法字符,a和b之前已经被定义过了在这个方法中就不能重复定义了。
        那么这段代码得放在System.out.println("请您输入第一个加数!");之后因为是先让用户输入才能正式获取输入的值,前后关系,
        接下来就是字符串值转化为整数型值了
        代码:a=?.nextInt(); //注意Int的i是大写,把?这个字符串值转化并赋值给整数型变量a
        这样我们就成功的获取到用户输入的第一个加数啦!

        第四步:和上面几乎一样,我们要让用户输入第二个数~
        按照上面的步骤,小B就不重复强调了
        代码:
        //向控制台(即dos窗口)输出“请您输入第二个加数!”
        System.out.println("请您输入第二个加数!");
        //获取用户输入的值
        java.util.Scanner d=new Scanner(System.in);
        //将字符串值d转化并赋值给整数型变量b
        b=d.nextInt();

        完成之后我们已经能够让用户输入两次数据啦(* ̄▽ ̄)y
        接下来就是让他们相加~
        为了方便我们可以用快捷点的方法
        代码:System.out.println("相加后得数为"+(a+b));
        打印出相加后得数为xxx,括号外的那个+号并不代表相加而是相连接,而括号内的a+b的+是相加的意思
        完成后,恭喜你您的第二个java程序完成啦!!!
        测试一下
        按照之前讲过的编译运行方法,

        成功啦!


        4楼2014-10-21 22:44
        回复