小白开发成长策略_安卓开发

 

 

 

 

 

 

 

 

小白开发成长策略_搜索_02

 

 

 

小白开发成长策略_搜索_02

 

 

 

 

 

 

 

 

 

光城

 

 

 

 

2018年12月15日

 

 

 

 

 

 

Find the way by yourself! And Trust You!                    《光城》

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 导语

 

 

 

 

 

 

 

 

大家好,我是光城,这是一篇长文,提前预警!请认真阅读!

本篇文章则是站在一个小白的角度,从浅入深分析,如何提高自己的编程能力以及自学能力!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

小白开发成长策略_安卓开发_04

 

 

 

 

 

 

 

目录

 

 

 

 

 

 

 

 

 

1.find the way

2.How to Solve by yourself

3.Love the problem

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 find the way

 

 

 

 

 

 

 

 

Some things you can get through Google, but the only thing you can't get is the ability to solve problems.The first thing you want do is to find your way.

 

 

 

 

 

 

 

 

 

 

 

 

 

小白开发成长策略_搜索_05

 

 

 

 

 

 

 

寻找

 

 

 

 

 

 

 

 

 

    在这里,我想用标题“find the way”去陈述一下这节的重点,这一句话直译过来是“寻找某种方式”。

    这里有个关键的词语find,这句话会让你觉得很迷,你也不用多想了,说的就是你自己,就是很迷,永远在一开始不知道这件事的"解决方式",与所谓的"知识通路"。

    如果说:你已经找到了这么一种方式或者通路去解决某种特定问题,那你还存在困惑吗?

    针对这个问题,我想传达的是Yes,是的,所有问题都围绕着我,即使解决了这个问题,又会有新的问题出现,这或许就是所谓的程序员通病吧。

    需求不断改,bug层出不穷,技术不断革新,一直学习埋头苦干!

    但是,正是这些问题,以及这些困惑,让你的自学水平及技术得到了质的飞跃,所以说 The way may be good or bad.But it depends on you!

    最后,到这里我想说,遇到困惑,不要怕,遇到问题,不要怂,就是干!直到你找到属于你的way!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 How to Solve by yourself

 

 

 

 

 

 

 

 

Search something by yourself

 

 

 

 

 

 

 

 

 

 

 

 

 

小白开发成长策略_搜索_06

 

 

 

 

 

 

 

搜索技能

 

 

 

 

 

 

 

 

 

    Someone give a question ,but I have no ideas. How can I solve it?

    This is a good question,my answer is Google!

    上面写了一问一答,我想表达的是如果有人问你你一个问题或者提了个需求,你解决不了,那又该如何呢?

    或许有些人解决问题的办法很直接,那就是直接找会的人呗,让他教你做!还有一种情况就是,直接让别人帮你做,你享受天伦之乐!还有另外一种人,不食人间烟火,埋头苦干,自己研究,也就是通过上面的谷歌来解决,通过自己强大的自省能力来solve all problems!The first two answers are the most direct way, but what can he really bring to you?

    前面两种方式是最直接,简单粗暴的,但是你真正学习到了什么?那个所谓的"Knowledge"真的是可以转化为自己的?又或者是下次你又碰到这个问题,重重循环这一步?

    那么问题又来了,不断的借助别人的力气去解决自己的问题,是一件好的事情,还是一件坏的事情呢?

    这是一个哲学问题,太深奥了,我回答不了。我只能根据我的理解来说了:“如果说,别人有空也很乐意帮你,而且这个问题不是那种很easy(没有任何挑战力)的问题,我的建议是,可以直接问别人,请求外援,但同时你要学会别人解决这个问题的方式,授人以鱼不如授人以渔,希望各位能明白!而对于我,问别人问题问的很少,很多人问了我很多问题,或许回答了,又或者没回答,但是我觉得我需要一个牛人指点一二,真的需要!”

    接下来我们回归正传,本文的标题是:“小白开发成长策略”,那么接地气的核心内容来了!下面从实际的生活例子来学习~

    前段时间,有几个小伙伴问我问题,这么来说的,我不是计算机的,跨专业,可以解决一下这个问题不?甚至更恐怖的是:嗨,可以代做一个比赛不!

    一个比一个恐怖,哎,满是泪啊,我想说的是,宝宝也不是计算机!!!哈哈~

    首先来进入第一个核心点:如何提高搜索能力?

    这是我想传达的第一个基本能力,为什么这么说呢???

    我就拿本科以及现在的实际情况来说吧。我大学的时候随便玩了玩Pr,Ae,Vegas,Adobe Final Cut等等。。

    套模板做视频是常态,装系统是便饭。

    对,你没听错,我就是这么过来的。其中接触最夺得就拿装系统中的系统为例子,经常有许多软件问题,可软件你百度或者谷歌一大堆,不就有了吗?还有所谓的配置环境,包括装系统在内,都是傻瓜式操作,又那么难?

    究竟是什么,阻止了你的步伐?

    我觉得是你“search”的能力,search太重要了,却总是被人忽略,甚至总是说网上没这方面的资料!当你说这句话的时候,要好好想想了~

    这里提到了如何提高,由于这个点非常大,所以我这里重点做文字上的提示,以后有机会再继续分享!

    比如:各位在找软件的激活码或者找所谓的破解软件时,经常无从下手,甚至下载下来的是病毒~

    对于这个例子,我解决的办法是:

    1.明确这是什么软件,查看官网,此软件是否收费!

    2.明确软件版本!

    3.先找软件的激活码或注册机等,并锁定版本号!

    4.回到1,进入官网下载!

    那么这个流程是我自己去下载一些收费软件,去解决的问题,这里强烈建议大家支持正版!!!我只是举个例子~

除了这些之外,还有一些其余的解决办法,方法不是唯一的,但思路确实相同~

希望各位,能够根据上述例子来学习第一个思维~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3 Love the problem

 

 

 

 

 

 

 

 

Every problem is a gift without problems we would not grow.

 

 

 

 

 

 

 

 

 

 

 

 

 

小白开发成长策略_c++_07

 

 

 

 

 

 

 

问题万岁

 

 

 

 

 

 

 

 

 

 问题是什么? 你如何解决自己的问题?问题又给你带来什么? 有的人会说,我非常喜欢解决问题。 有的人会说,我觉得每天都糟糕透了。 当然,也有人会说,我只是个努力生活的普通人。

 

 

 

 

 

 

    紧接着,我们对于上述的search能力有了基本了解后,我们需要的另外一个基本技能就是“爱上问题”!

Love the problem,The problem with problems!

    你需要做的就是爱上问题,而这个问题又会衍生很多个问题,对于这里,我其实想说问题如何解决的,但是之前有一个非常详细的解决问题的步骤,也是我解决问题的思路,所以直接以上次的问题为例子,这里给出地址,你们可以直接去看!

    一个问题有很多种,但真正对你有帮助,甚至质的飞跃的问题,不是很多,我们每日遇到问题,每日围绕这问题生活,也每日产生新问题,The problem with problems!你不能逃避,而是选择去面对!

    下面我来以我大学的安卓开发实际例子及研究生的一个安卓小作业来详细解释~如何爱上问题,又如何去解决问题~

在上个月的时候,c++课布置了一个小作业,大家一起来感受一下!

    小作业:

    1.完成手机通讯录备份远程服务器数据库

    2.数据库要求用sqlite3

    3.完成通讯录备份TF卡

    4.通信部分用c++来实现

    5.采用面向对象思想实现,要求有完整的UML设计

    就这个是c++的一个作业,大家看了之后的感受如何呢?

    这个作业实际就是做一个安卓开发,通过jni来实现java与c++数据传输,并且对于服务器数据库的访问用c++来实现,这个就是所谓的基本思路!

    当时这个思路有点绕,其实我没清楚,最后在明白是这个思路的~

    为什么这么说呢,因为我以前不是学计算机的,但是却自学过安卓开发,但是对于网络通信一无所知,而在这里,困难点对我来说,就是c++的网络通信了~

    也就是大家经常听到的套接字,网络通信协议传输socket~

    明确第一个问题:我是怎么找到思路的呢?

    是在课上一个大佬说了socket以后,我才知道思路的~我也很菜,就这样了~从别人那里学习到的知识,但这个真的是自己的知识?

    远远不是,下来自己去查socket通信协议,如果用c++去写,如何连接服务器,如何写入数据库这都是问题,幸运的是安卓开发对我而言是小菜一碟,毕竟之前做过两个项目,哈哈~

    回顾了一下,之前的项目,发现手机上还有这两个app,放出图片来,大家来看一波~

 

 

 

 

 

 

 

 

小白开发成长策略_装系统_08

 

 

 

 

 

 

 

 

小白开发成长策略_c++_09

 

 

 

 

 

 

    回归到这个安卓小项目,如何去解决问题呢?

    其实对于这个题目,我们可以层层来剥,比如我们可以采用算法的分治法。

    我觉得这个思想是非常好的,因为可以帮助你解决多个问题,不断的分成小问题,逐渐明确,直到最终解决最本质的问题。

    我这个问题首先我要做的就是去谷歌c++如何与服务器进行连接,这个直接搜,就不对了,这样的话,搜索不直接,太模糊了,所以这里换个思维,连接不就是socket嘛,那我直接搜c++如何操作socket,这样的话,在网上出现很多资料,可以找一个详细的来学习,这是第一个:如何去谷歌搜索!

    在这个项目中,最复杂的也出现了,那就是c++写入sqlite3数据库,这个太简单了啊,直接操作就行了啊,too young ,too simpla!

    好吧,我错了~sqlite3太轻量级了,出现了很多问题,比如不支持并发操作,只能单次操作完毕,才可进行下次写入!

小白开发成长策略_装系统_10