GeekBand第二周线下课堂

今天,是GeekBand第二周的线下课堂,觉得离上周好像很久了一样(因为一周以来不断地接触新知识、新想法,团队的组建、磨合,项目的头脑风暴到最终确立),但一算剩余的时间,8周的线下课堂已经过去1/4了,所以觉得时间也是在飞快地流逝。这也是我喜欢互联网行业的原因,因为快速的发展和迭代,会让一个普通的人原本几十年的工作寿命,在不断地学习和更新自己头脑的过程中,得以体会到更多的精彩,有成功、激情,也有失败、迷惘,都在无形中拉长了我们生命的广度。

话不多说,来回顾一下今天的GeekBand线下课堂。

一、首先是产品经理课程的袁店明老师进行的产品点评环节:

1.这是第一次见到袁老师,在课堂的线上直播开始前,袁老师刚好在我旁边,就我们项目组的idea对产品经理张诚进行“拷”问,我的第一印象就是袁老师的发问非常清晰而有力,带有一种力量,如果你对自己的idea没有充分考虑清楚,几个问题下来一般是招架不住的。但这也正是其魅力和价值所在,让你再深入地思考自己的idea,从而发现之前没想到的盲区。

2.袁老师也分享了他的产品观念:逻辑推演非常重要,如果想提高逻辑能力,有一本书也是他力荐的——《系统化思维导论》。

3.需求不等于问题,用户是碰到实际的问题,所以才会对解决方案有需求;而不是我觉得用户有这个“需求”。

4.语言表达、文字表达能力,非常重要,能不能1分钟把你要表述的东西准确、清楚地传达给听众,或者你要传达的对象。现场一位iOS的同学就把他们组的项目表述得非常清楚、明白,虽然他不是产品经理。这也说明工程师经历所锻炼出来的逻辑思维是非常有用的,逻辑清楚了,表述自然清晰;如果一件事你说不清楚,那多半不是口才的问题,而是大脑偷懒了,没想清楚。

5.先做逻辑推演,再去找目标用户进行访谈、调研,而且区分用户的细致程度,也表示你的思考有多深入,如果反过来的话,比如不加选择地找一堆“用户”来调研,就可能会被用户带到沟里。

二、iOS课程的段松老师来到线下课堂现场,同时也进行线上的直播互动:

1.看了几天的iOS视频了,对段松老师的讲课风格非常喜爱,所以抓住直播前的一些时间,和段老师聊了聊,也问了几个问题。其中一个是关于Objective-C和Swift语言在学习时候的侧重点,段老师也从企业实际开发工作的角度来说,近两三年肯定还是需要大量使用Objective-C的,所以要先把Objective-C学好。也希望有纠结于苹果现在新旧两门语言之间的同学,能解除疑惑。当然这是起步时的一个术上面的考虑,毕竟时间精力是有限的,也正如tinyfool老师所说,工程师的路是没用尽头的,任何一个优秀的工程师都应该是全栈的。所以这里也没用任何语言之争的意思:)

2.不要死记硬背,因为死记硬背没用,反而会因为出现记不住的情况而打击自信心。爱因斯坦也说过类似的话:凡是我能查到的资料,我都不会浪费我的大脑去记忆它,用的时候查就行了。(上学时还和同学比过背圆周率的飘过~)

3.不要钻牛角尖,所以很多人都说段老师不像程序员,因为他说不想仅仅站在程序员的角度看待程序,其实用户关心的、公司关心的是产品本身,而不是你的代码是怎么写的、有多牛逼,这些只是手段和工具,而不是目标本身。

4.拿到产品的需求文档之后,不要急于写代码,段老师分享自己的经验是会先把需求文档仔细阅读5~7遍,然后可以脱稿和产品经理等项目组成员一起开个会,双方都互相沟通清楚之后,然后开始写代码,正所谓磨刀不误砍柴工。拿到需求立马开始coding的,通常是新手。

三、GeekBand的创始人李建忠老师来讲解C++的一些知识,以及线上的直播互动:

1.别拿指针指向栈对象,这是很危险的,因为函数执行完毕,堆里的对象就会被销毁。

2.画内存模型,李老师讲课一般开始就是教大家画内存模型。不然只会熟练写程序,但一旦出了问题,尤其是复杂的问题,就会慌乱、没有头绪。而且对成为全栈工程师、切换各种语言非常有帮助。

3.栈对象保存指针,但是指针指向的对象要储存在堆上。

4.搞清楚一个对象有多大,是很重要的,占用多少内存,比如用sizeof( )函数。不是为了面试而变成应试准备,而是因为面试肯定是会问重要的问题,所以这个对自己的编程功底的提高也是有帮助的。

四、也是我们在GeekBand的重头戏——项目实践的推动

1.我们项目组的产品也确定了,idea的核心是每天截取1秒钟的视频,一年可以汇聚成365秒(约6分钟)的视频,用户初步定位在有小孩的父母,用来记录自己孩子的成长轨迹、成长瞬间,从孩子出生、到一点点长大,相信在孩子长大后,这会是一份非常珍贵的礼物,不仅仅是视频本身带来的感动,更是这视频背后的每一秒,都有父母家人对TA倾注的爱。(想到这,自己都想有个小孩了怎么办:)

2.初次做项目,总会瞻前顾后下不去手,似乎自己还没准备好,但是来到GeekBand就是为了亲自下水去游、才能学会如何游泳。

3.在此,用丘吉尔学画画的故事,来鼓励自己以及和我有同样情况的朋友:“我(指丘吉尔)用他们的那些玩具水彩染料稍稍一尝试,便促使我第二天去买了一整套的油画器具。下一步我真的动手了。调色板上闪烁着一滩滩的染色;一张崭新的白色的画布摆在我的面前;那支没蘸色的画笔重如千斤,性命攸关,悬在空中无从下手。我小心翼翼地用一支很小的画笔蘸真正一点点的蓝颜料,然后战战兢兢地在咄咄逼人的雪白画布上画了大概象一颗小豆子那么大的一笔。恰恰那时候只听见车道上驶来了一辆汽车,而且车里走出的不是别人,正是著名肖像家约翰·赖弗瑞爵士的才气横溢的太太。“画画!不过你还在犹豫什么哟!给我一枝笔。要大的。”画笔扑通一声浸进松节油,继而扔进蓝色和白色颜料中,在我那块调色板上疯狂地搅拌起来,然后在吓得簌簌直抖的画布上涂了几笔蓝色。紧箍咒被打破了。我那病态的拘束烟消云散了。我抓起一支最大的画笔,雄赳赳气昂昂地朝我的牺牲品扑了过去。打那以后,我再也不怕画布了。”

放在iOS开发里面,丘吉尔买的“一整套油画器具”就像我们为学习iOS开发而购买的Mac电脑一样,所以,来弄脏你的“画布”吧,一些精彩的App也即将从你的指尖、在你的Mac上写出来。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-28 17:21:54

GeekBand第二周线下课堂的相关文章

【渗透课程】第二篇下-HTTP协议的请求与响应深度剖析

[渗透课程]第二篇下-HTTP协议的请求与响应深度剖析 HTTP1.1目前支持以下7种请求方法: 常见的MIME类型如下: 第一个数字有五种可能的取值: 目录 什么是请求方法?什么是请求头? HTTP请求信息由3部分组成: 1.请求方法(GET/POST) URI 协议/版本 2.请求头(Request Header) 3.请求正文 下面我们来分析一个http请求: POST http://xg.mediportal.com.cn/health/sms/verify/telephone HTTP

android从放弃到坚持放弃第二课(下)

续第二课( 下) 续第二课 下 活动的生命周期 返回栈 活动状态 活动的生存期 体验活动的生命周期 活动被回收怎么办 活动的启动模式 standard singleTop singleTask singleInstance 实践出真知 知晓当前是哪一个活动 随时随地退出程序 启动活动的最佳写法 问题 写app必须掌握活动的生命周期. [活动的生命周期] [返回栈] android每次启动的活动会覆盖在原活动之上,然后点击Back键会销毁最上层的活动.是使用Task来管理活动,一个任务就是一组存放

小甲鱼python视频第二讲(课堂笔记)

1.流程图的使用. 在写程序的初期,可以试着先写流程图,搞清逻辑顺序.实现功能.判断条件等 2.内置函数 BIF == built-in-Function,查询python中的内置函数,可以使用代码: dir(__builtins__) 3.对于不清楚的函数,可以通过help(函数)了解函数的功能. 4.课堂里的游戏源代码: print("......................我爱你联盟............................") temp = input(&qu

《Unity_API解析》 第二章(下) Camera类实例方法

RenderToCubemap方法:生成Cubemap静态贴图(专业版有) 1.public bool RenderToCubemap(Cubemap cubemap); 参数为Cubemap静态贴图 2.public bool RenderToCubemap(RenderTectur cubemap): 其中参数cubemap为RenderTexture静态贴图 3.public bool RenderToCubemap(Cubemap cubemap, int faceMask); 其中参数

《JavaScript权威指南》学习笔记 第二天 下好一盘大棋

前段学习js的时候总是零零散散的,以至于很多东西都模棱两可.时间稍微一久,就容易忘记.最主要的原因是这些东西,原来学的时候就不是太懂,以至于和其他知识无法形成记忆链,所以孤零零的知识特别容易忘记.重温犀牛书,加上最近对记忆宫殿的记忆方法有点感兴趣,于是结合起来来做笔记. 开始吧,上去先扔一张我画的js的数据类型.后面的所有东西,基本上都是基于这张图的. 原始类型没啥说的,就是string,number ,boolean . 对象类型包括 对象.其实还有Array, func 也是特殊的对象.  

GeekBand第二三周学习笔记

conversion function(转换函数) 1 class Fraction 2 { 3 public: 4 Fraction(int num, int den=1) 5 : m_numerator(num), m_denominator(den){ } 6 operator double() const { 7 return (double)(m_numerator / m_denominator); 8 } //转换函数 9 private: 10 int m_numerator;

[已读]HTML5与CSS3权威指南第二版(下)

去年下半年前公司给买的(老付对我们确实蛮好的),一人挑一本,我当时一定是秀逗了.看的时候就发现,这本书的内容过时严重,即便它是新出不久的第.二.版.其他没什么说的,总之,不推荐看.

GeekBand第二周学习笔记

Copy Ctor(拷贝构造),copy assignment operator(拷贝赋值) Copy Ctor(拷贝构造):默认的拷贝构造函数会将其引用类型的引用拷贝到新实例,若用指针指向两实例的同一引用类型则两指针的值是相同的即指向同一内存地址. 1 String::String(const String& str) 2 { 3 m_data=new char[strlen(str.m_data)+1]; 4 strcopy(m_data,str.m_data); 5 } Copy assi

第二节课课堂作业

题目不重复: 建立3个数组,把产生的随机数a放入数组a[i],随机符号b放入数组b[i],随机数c放入数组c[i].在输出前是否有a[i],b[i],c[i]同时与a[n],b[n],c[n]同时相等. 可定制(数量/打印方式) 运用循环控制数量,输出时添加变量控制打印方式. 可控下列参数: 是否有乘除法.数值范围,加减有无负数.除法有无余数.是否支持分数. 输出前判断所控条件,添加条件判断乘除法.加减有无负数.除法有无余数.支持分数运算,在添加随机数时控制数值范围,最后根据所判断的条件分别打印