分类目录归档:计算机与编程

新手写给更新的新手的编程入门建议(Python)

引文

我是从去年开始学习编程(Python)的,到现在仍然还在入门阶段。之所以我的入门阶段如此之长,我想大概有以下几个原因:

一、没有选对教材

一开始我看了《Python简明教程》,书中大部分概念都很简单,只能算是有了一个基本的了解。然后做了某个网络在线教程,一味的强调语法规则,反觉枯燥乏味,像是做填空题。再后来,看了Udacity上的教程,发现Python原来能做这么多有趣的事情,这才有了更大的兴趣。但Udacity上的课程仅仅是几个小项目,适合刚开始学习时培养兴趣。然后,我有发现了《Learn Python The Hard Way》,觉得这才是初学者应该接触的东西。作者不仅强调了很多重要的概念,还指出了很多新手易掉入的误区,比如不该纠结于操作系统和文本编辑器等。

二、听从其他人的建议

当然不是说不能听从他人的建议,我的意思是不要听从太多的建议。大部分权威的建议肯定是有价值的,但新手得去分辨他的建议是不是适合新手,假如我早一些看到知乎上萧井陌的这篇编程入门指南的话,那么我将少走很多弯路。而我的经历是这样的,当我纠结于操作系统时,便去找关于操作系统的建议,然后掉进了Linux的大坑,从虚拟机、Linux版本、命令行、软件配置……这其中每一项都花费了大把的时间。接着我又开始纠结编辑器,又去找建议了,试了各种各样的编辑器,每一个都有或多或少各种各样的问题。每一个工具的支持者都列出各种各样的优点了。但你却不知道自己适合哪一个,最后只能是试来试去浪费时间。

三、投入的时间太少

这个是我自身的问题,但如果非要找些借口也能找得到,比如说当初没脑子选错专业,有女朋友……但最近情况好了许多,我已经彻底放弃专业课的学习,每天只专注三件事:阅读,英语,编程。

我的建议

下面以我过去一年的经验,给比我还新的新手一些建议(仅适用于入门阶段):

一、为什么学编程?

开始学编程之前,要问自己这个问题。没有目标的学习算什么?修身养性,锻炼智力?不管是想要开发程序,做网站,或是找工作挣钱。总之要有一个目标。这是你坚持下去的前提。

二、操作系统

不要一开始就换Linux,作为编程新手,Windows已经足够了。

三、编辑器

用Notepad++。不要问为什么。

  1. 制表符Tab设置转换为空格。
  2. 运行快捷键设为F5。
  3. 语言样式依喜好来。
  4. 其他设置默认,学习一段时间后根据需求再去改设置。
  5. 再知道自己需要什么样的功能之前,不要换工具。
  6. 学完基础内容后可以试用一些PyCharm。

四、教程

看看专家们怎么说,不要看太多的建议。比如萧井陌的那篇入门指南就很好。知乎上技术类的问答可以只看高票答案。

五、如何坚持?

定期回顾自己的目标是否现实,自己是否有能力实现。觉得不能的话立刻放弃,不要浪费时间。心智不成熟的人多去看看书(当然看烂书没用),等长大了再来谈坚持。对于心智健全的人,我的建议是:

  1. 抛弃娱乐式学习。
  2. 做自己感兴趣的小项目。
  3. 使用纸笔做任务管理。
  4. 远离媒体和社交网站。
  5. 简化生活方式和人际关系。
  6. 一周只留半天休息娱乐。

六、其他

用写博客或记笔记(推荐OneNote)的方式记录经验和总结。牛犊应该安心吃草长大。慢慢来,不要急。

用模拟器玩wii游戏

 

rp_9b31511c8706fcdbbcc2b4d0158dd590.jpg

  • 前言
    • 本文介绍如何用最简单(经济)的方法玩wii游戏。当然啦,如果钱足,或是有台大电视,那么直接去买一台wii会得到更多快乐,而且可以免去倒腾模拟器的麻烦。若两缺如我,那就没得选了。
    • 拉扎罗把玩游戏得到的趣味元素分为四种:简单趣味(Easy fun)、困难趣味(Hard fun)、社交趣味(People fun)、严肃趣味(Serious fun)。其中社交趣味,也就是与朋友或亲人一起游戏所得到的情绪要丰富得多。与他人一起游戏会把合作、竞争、沟通和领导等等结合在一起,这也正是wii游戏吸引我的地方。
    • 我在尝试了许多游戏后也发现,两个人一起玩游戏,更快乐。
    •  当然,以下情况例外:
      • 竞争类游戏,比如格斗类,适合水平相近者,否则两边都不愉快。
      • 某一方过于笨拙,以至于通过学习也无法达到正常操作游戏的水平。
      • 某一方过于聪明,以至于只能靠故意输给对方才能维持对方的快乐。

 

  •  准备材料

 

  • 设置
    • 基础工作(你需要自己完成的)
      • 下载相应版本的模拟器,安装备用。
      • 到上面的网盘里搜索并下载下面的几个游戏,解压,把游戏文件集中到一个文件夹备用。
      • 买一对手柄。
      • 交个愿意和你玩游戏的女朋友或男朋友。
    • 其他设置
      • 点击浏览选择之前存放游戏的文件夹,游戏将以列表的形式显示在主界面。
      • 点击图形
        • 勾选use fullscreen(自动全屏)
        • 勾选隐藏鼠标光标
        • 增强标签页中的抗锯齿等选项可自行决定调节。一般游戏速度与画质成反比,具体视电脑硬件而定。
      • 点击wiimote
        • 把wiimote1、2选为模拟wiimote。
        • 点击设置
        • 上方是设备的标签页
        • 标签页下面是设备选择框,选择另一个设备后刷新。
        • 因为不同的游戏需要不同的键位设置,所以在这里介绍一下各个键位及游戏中的功能。
          • 左边的AB12是常用键,设为手柄右边的四个键即可。(点击界面上的按键,然后按下手柄上要设置的键位。)
          • +-一般作为跳过游戏过场动画和游戏菜单键(暂停、保存进度等),设在手柄中间位置的小按键。
          • home是wii系统的暂停界面(相当于操作系统)。
          • 红外线一般用不到,如果用键盘鼠标可以设为鼠标滑动。有些游戏需要用红外线精确点击就不容易操作。
          • swing未知
          • tilt在游戏中用于倾斜,比如滑轮平台向左右的偏转。可设为手柄上方的两个键。
          • 震动代表着wii控制器的晃动,可以把三个值设为同一个键。
          • D-pad设为十字键。
          • 勾选右下角三个选项
          • 扩展
            • 有些游戏需要左手控制器,如马里奥赛车,需要勾选nunchuk。
            • ZC是主要按键,设为上方按键。
            • 设置摇杆为十字键。
            • 其他似乎没用?
          • 建议把每一种游戏所需的键位设置保存配置。输入名字后点击保存即可。使用时选好配置,点击载入。但需要注意的是,同时保存的还有选择的设备。所以每一个设备要保存一个独立的配置文件。

 

  • 推荐游戏及相应设置
    • 马里奥赛车
      • 支持一到四个人
      • 需要在扩展中选择nunchuk
      • zc键在游戏中用来用道具以及向后看。设为手柄上方的两个键。
      • AB为加速和减速。
      • 震动在游戏中用于在空中做动作(有加速奖励),设为上方某个键。(需要在升空之前按住不放。)
      • 把摇杆设为十字键。
      • 由于键位的原因,在游戏选人物赛车等按下手柄上下方向键将会是左右的效果,进入游戏后正常。
    • 炸弹人
      • 建议下载最简单的版本,不要下载炸弹人大陆。
      • 我没找到汉化版,所以只说一下我知道的部分。
      • 可以和马里奥赛车用同一个键位配置。
      • 游戏有三个模式:战斗模式,故事模式,新手模式
      • 进入战斗模式后设定玩家,1-4p是player,5-8p是cpu。左右选择模式,当选到两个日文字母是为取消的意思。我们只需要选择好要关闭的玩家,其他默认。
      • 然后是选具体的游戏模式以及地图。1返回,2确定。
    • 新超级马里奥兄弟
      • 最多支持四人。
      • 无需扩展。
      • 需要设置的键位有:
        • d-pad的十字键。
        • tilt的左右设为上方按键。
        • 1,2,a,b设为右边四个键。1用做使用道具,按住为奔跑;2为跳,按住跳得更高,在墙壁等地方可以(跳+朝向墙壁的方向键)可以蹬墙跳;A产生气泡保护,在掉下坑前可以使用,但所有玩家同时使用的话就完蛋了。气泡状态下按震动键去碰其他玩家可以快速出来。
        • 震动xyz设为手柄上方右上角按键,用于旋转,飞行,与1配合抓取物品。
    • 星之卡比
      • 键位设置同新超级马里奥兄弟。
      • 键位功能也与新超马差不多,游戏开始有入门教程。
    • 马里奥聚会9
      • 按键配置同马里奥赛车。
      • 适合四个人玩,三个手柄,外加鼠标键盘。
      • 鼠标键盘设置为玩家1,用来选择游戏,做主要的操作。其他玩家在选择人物时会有些不方便,多尝试一下。
      • 因为控制器的问题,只能选择小游戏中的自由模式,大部分的游戏都能玩。
      • 推荐游戏:飞吧,三段火箭;数数栗宝宝;躲猫猫;敲砖快手;数字攀岩。

 

  • 其他双人/多人游戏推荐
    • 雷曼·传奇(pc)
      • 类似有马里奥的横版过关游戏。
      • 风格搞笑,内容丰富。
    • King of opera(ios)
      • 算是聚会游戏吧。
      • 操作简单,容易上手。
      • 四个人玩最有意思。个人觉得经典模式最好玩。

FizzBuzz问题

之前在Medium上看到一篇文章,作者提到了FizzBuzz的问题,问题是这样的:

在1到100的数字中,能被3整除的变为“Fizz”,能被5整除的变为“Buzz”,既能被3整除又能被5整除的变为“FizzBuzz”,然后打印出这些数。

据他说很多的计算机专业毕业生求职时都没法完成这个简单的问题。于是,我也开始尝试了。两周过去一直没有解决,因为想要自己解决掉,所以也没有去Google答案。一开始纠结于如何替换掉相应的数字,没有找到可以替换数字的方法。然后又不知道如何在不破坏顺序的情况下替换数字。今晚突然有了灵感,解决了问题。

代码如下(python):

numbers = range(1,101)

for i in numbers:
    if i%3==0 and i%5==0:
        print 'FizzBuzz'
    elif i%3==0:
        print 'Fizz'
    elif i%5==0:
        print 'Buzz'
    else:
        print i

如果你也在学习编程,那么也来尝试一下吧!