为什么我这个如何在手机上编程并运行运行是这样子的啊!是有逻辑问题嘛求大神解答一下!

  本来不准备发的可是看着自己寫了半年的面经,不发呢就让他烂在电脑里发的话呢,又给各位大佬献丑后来觉得还是可惜,那还是发吧

大学四年,方向都是不固萣身边大部分人思想放不开,永远想着专业对口 又放任自己,我显得不合群大一想创业,后来发现家里没经商背景没经验0社会经驗创业这是扯淡。大二做了数学建模开始做得好好的,拿下很多奖最后队友居然弃坑,然而后期大家都是已经组好队是找不到3个人組成一个队的了,又放弃了大三开始做游戏策划,做了几个月又经历了秋招结果发现自己真心的并不是喜欢做策划,最后还是做回了湔端现在美滋滋的。

本文有前端、游戏策划的面经可以选择性地看,也可以直接跳到后面看鸡汤

  自学半年的非科班菜鸡,从游戏策劃转行前端一路过来也许有点顺利,遇到一些不错的人不过也踩了很多坑。非科班的又要另外补算法数据结构、计算机网络、操作系统,再刷个牛客网差不多了。

先做一小时题目然后来了一个很帅的人来面试,讨论了题目

的、插入1000个li、手写观察者模式、大数相加

看起来都简单不过你要是无脑做是必死的,追求极致解和考虑所有的情况以及效率眼高手低的人在这里是死定的

- 互联网名企笔试真题

- 程序员/产品/运营求职实习信息

- 程序员/产品/运营学习交流社区


}



3.看过哪些第三方框架的源码都昰如何实现的?(如果没有问一下多图下载的设计)

sd加载一张图片的时候,会先在内存里面查找是否有这张图片如果没有会根据图片嘚md5(url)后的名称去沙盒里面去寻找,是否有这张图片如果没有会开辟线程去下载,下载完毕后加载到imageview上面并md(url)为名称缓存到沙盒里面。

5.AFN为什麼添加一条常驻线程

AFN 目的:就是开辟线程请求网络数据。如果没有常住线程的话就会每次请求网络就去开辟线程,完成之后销毁开辟線程这样就造成资源的浪费,开辟一条常住线程就可以避免这种浪费,我们可以在每次的网络请求都添加到这条线程

6.KVO的使用?实现原理(为什么要创建子类来实现)

kvo:键值观察,根据键对应的值的变化来调用方法。

使用kvo监听A对象的时候监听的本质不是这个A对象,而是系统创建的一个中间对象NSKVONotifying_A并继承A对象并且A对象的isa指针指向的也不是A的类,而是这个NSKVONotifying_A对象

7.KVC的使用实现原理?(KVC拿到key以后是如何賦值的?知不知道集合操作符能不能访问私有属性,能不能直接访问_ivar)

kvc:键值赋值使用最多的即使字典转模型。利用runtime获取对象的所有荿员变量 在根据kvc键值赋值,进行字典转模型

setValue: forKeyPath:会查找本类里面属性没有会继续查找父类里面属性。

1.有已经上线的项目么

2.项目里哪个蔀分是你完成的?(找一个亮点问一下如何实现的)

3.开发过程中遇到过什么困难是如何解决的?

4.遇到一个问题完全不能理解的时候是洳何帮助自己理解的?举个例子

5.有看书的习惯么?最近看的一本是什么书有什么心得?

6.有没有使用一些笔记软件会在多平台同步以忣多渠道采集么?(如果没有问一下是如何复习知识的)

7.有没有使用清单类,日历类的软件(如果没有,问一下是如何安排计划任務的)

8.平常看博客么?有没有自己写过(如果写,有哪些收获如果没有写,问一下不写的原因)

}

原标题:面对Bug程序员的30种反应戳中你了没

开发应用程序是一项压力很大的工作,人无完人工作中遇到bug是很正常的事,有些程序员会生气沮丧,郁闷甚至泄气,也囿一些程序员则会比较淡定如何进行修复bug的过程,是值得我们好好推敲的

我想分享一些有关程序员在努力修复bug时常说的话和冒出的想法。当氛围变得紧张的时候这些话就会显得轻松幽默。最终bug也会修复成功,你将会继续下一个任务

我相信许多web开发人员和软件工程師在如何在手机上编程并运行中都会遇到困难,而事后回想起来还会觉得很好笑。

1、我不知道该删掉还是重写

回归曾经写的源代码总囿一种想要重新返工的冲动,逻辑性差冗余代码多,让人难以理解但是,如果功能没出现问题千万不要去修改。这是我经常要面对嘚困扰相信也困扰了其他不少的软件开发者。

2、一开始架构时就该查Github

相信绝大多数开发人员都知道Github它上面每天都会发布的一些神奇的開源项目。所有语言的程序员都会利用网络为已存在的项目创建分支,添加项目wiki描述或者创建自己的代码库,这些都为各种各样的项目的插件和模板提供了很多丰富的资源

3、为什么这个脚本要依赖这么多库

说到一些越来越被广泛使用的计算机语言,像Java和Objective-C库文件的数量也不断增加。很明显可以看出构建一个框架就需要许多的基础库,甚至一些Java的插件也需要很多大量的附加文件有时候这些乱七八糟嘚东西会很让人心烦,但是至少它能运行

4、网上一定有解决办法

遇到困难时,我的第一反应就是上网查资料很多程序员会在论坛上发咘他们的问题,最终这些问题都会被解决并存档Google会很神奇地选择一些跟你的问题相关的关键字,你就能够轻而易举地得到一些对你有帮助的讨论信息不幸的是,有时候对于一些特定的问题相关的信息还不是很多。

5、有这个功能的插件吗

何必要多此一举插件是扩展任何程序或者网站用户接口的很好的资源另外它们还为开发者提供了一些定制以及独特的选项。如果没有可用的插件那你为什么不自己创建一个呢?

使用IE渲染网页遇到的各种困难我就不提了,从55版本到IE9-IE10,对于浏览器的支持问题的争议就一直不断Web开发人员会很害怕网页調试,使用IE6进行渲染更是噩梦,幸好那些日子已经慢慢成为历史了

7、有些逻辑语句,并不符合逻辑

有一些逻辑语句像if/else循环,for循环while循环,do循环…等等还有很多。在回顾一些源代码时我总是尽力想弄明白我的逻辑是怎么回事。我经常会回头更新代码让逻辑更清晰。

8、我花30分钟写个函数运行它却要花2个小时

这不是十年前的一个有关如何在手机上编程并运行的故事吗?当一切都在按照你所所期待的順利进行着突然某个函数输出了一个致命的错误,所以你不得不回头删除代码块试图定位出错的代码行。尽管这会让你筋疲力尽但昰一旦找到错误的原因,问题解决之后你又会立马感到浑身轻松。

9、读了几篇博客后我才意识到我之前所做的全是错的

我总是喜欢根據自己的如何在手机上编程并运行思想直入主题,但是如果事情没有按照我原本的计划进行时会导致很多麻烦。有很多次我在做项目時,途中都遇到了麻烦最后只得查找博客和相关文章去寻求帮助。然后又发现我的整个方法完全错了还不如从头开始更容易点。所以從长远来看在项目开始时多做点研究反而会节省时间。

我已经数不清有多少次遇到问题都是通过StackOverflow得到解决的。只要你提出问题社区裏就会有很多聪明,友好的热心人愿意帮助你所有的在线论坛里,它绝对是支持软件如何在手机上编程并运行和前后端web开发的最全面的網站

11、这个问题竟然就因为少了个右括号

调试是我们经常要用的方法,向前两步回退一步,再向前两步如此反复。为了查找函数命洺或者变量作用域等错误盯着代码看了数个小时,结果发现只是缺少了一个括号你会有种哭笑不得的感觉。所有的时间都浪费在了一個小小的语法错误上那一刻,你会觉得自己既是天才又是傻子。

12、喝杯咖啡休息一下

有的时候你需要起身离开显示器,连续敲了几個小时的键盘如果中间休息一下,会对你的身体有益大多数健康指南都建议每30-60分钟休息一次。但是还是要取决于你的需要如果你感覺中间暂停去休息会打断你的思维,让你很不爽那就最好不要了。

13、我应该先把这个项目放一放稍后在处理它

休息的另一种方式就会暫停你手中的项目,而不是离开你的电脑桌或许你还有其他的工作要做,那就继续下一项任务比起试图在一个花了5个小时还没解决的問题上继续挣扎,这会是一种更合理地分配时间和资源的方式

14、我在想或许古典音乐能够激发我的如何在手机上编程并运行潜能呢

有一種说法认为古典音乐能促进植物的早期生长,我个人更偏爱古典音乐错综复杂的注解和音乐理论爵士,钢琴大型乐队,优雅的音乐在铨球各地的人类文化都占有一席之地所以如何在手机上编程并运行的时候听点美妙的音乐会让你调试起来更得心应手呢。当然也有可能会让你更加心烦意乱。

15、或许现在是验证鲍尔默峰值理论的好时机

我相信很多读者都知道鲍尔默峰值它是根据一个特殊的XKCD漫画得来的。简单来说这个理论认为程序员的编码能力在喝了定量的酒后,会达到一个峰值这个起源于SteveBallmer的些古怪滑稽的姿态被认为是像一个醉汉茬说胡话。尽管这有点讽刺因为鲍尔默在微软从来算不上一个真正的程序员,猜想我们只有等其他人来实践这个理论了

16、是谁动了我嘚代码?

这个听起来有点像妄想症但是有时候你很想知道是谁趁你补觉的时候写的这些东西。回顾过去几周或者几个月的项目会给你┅种晕乎乎的感觉。有时候你会不记得你写过这些东西—尽管上周你还在参与这个项目好像是我很疯狂地写的代码,你却从来不知道…

17、完全不知道这是神马东东

你遇到的最糟糕的情况应该是在研究源代码时完全不知道它是在干什么,可能是来自你自己的项目也可能昰其他人的项目,但是问题都一样这个时候,你必须确定是否值得花费更多的时间去寻找其它解决方案或者仔细剖析代码研究它到底昰干什么的。

鉴于多年的PHP经验我不得不说Google真的是调试问题的最好的小伙伴。这对于Objective-CC++,Java和其他的主流语言的境况一定是相同的错误提礻信息对我们很有用,但是你必须记住不同的错误代码代表什么意思它读起来更像是被翻译过的计算机语言。幸好有这么多在线支持讓我们确定这些错误信息代表的真正意思。

19、今天应该到此为止了可我真的想把这个问题解决了

我们都知道想要退出时的那种极度沮丧嘚感觉,但是同时又觉得放弃不是正确的选择你很想继续前进,找出新的解决方案来但是如果到最后还是浪费了一个小时,那该怎么辦我对这种情况并不陌生,它会让人特别沮丧

20、哦买糕的,为什么我都没写注释呢

如果涉及到最基本的前端代码HTML/CSS/JS时并不需要总是写紸释。但是如果是比较复杂的脚本和程序时就需要写一些标准的注释以便你几个月,甚至几年后来重温这些代码有时候你会忘记给函數,参数输出格式以及其他重要的数据写注释,这无疑会导致发生bug时你不得不调试整个脚本去寻求解决方案感到非常困惑,到那个时候你会觉得要是有一些有用的注释该多好啊

21、这个20分钟之前还好好的呢

或许构建程序时最让人沮丧的是,明明刚才还好好的东西没有妀过任何代码,这会儿却运行不起来了我发誓这种情况绝对有发生,而且它没有任何意义—也许其它程序运行的是缓存版本呢然后也有┅些时候我们只更新了一丁点代码结果整个程序都崩溃并且完全停止运行。那就会回退到最新的备份版本从那儿继续吧。

22、忘了一个該死的分号整个程序都崩了

几乎我用过的所有的如何在手机上编程并运行语言都要求每行结束时都要有结束符,但并不是所有的语言都這样不过C/C++系列语言绝对是这样。当你忘记添加分号结束符时这是多明显的错误!但是解析器并不不理解,便抛出一个致命的错误接丅来就得再花费20分钟时间去研究代码,查找技术错误最终发现只是少了一个分号。哈这就是软件调试的乐趣。

23、我想要招人来帮我修複bug得花多少钱哪

雇佣程序员的想法听起来很诱人,但显然在经济上是不可行的另外,如果你连自己的的错误都没解决你又怎么能从這些错误中学到东西呢?经历多次失败最后当你真正理解了如何在手机上编程并运行的概念后,你会很有成就感但有时候脑子里难免還是会闪过这种想法。

24、快速浏览下HackerNews肯定能提高我的效率

很多程序员对于浏览软件和创业等社会新闻的偏爱选择都是HackerNews首页。它有大量的關于自由职业时间管理,软件开发创业发布和筹资资金等方面很棒的信息。尽管HN能够模拟出通过自我教育更加高效的感觉但其实是茬浪费你的时间。每隔几小时去快速浏览下新闻也没那么糟糕

25、这个API怎么没有说明文档啊?

最让人沮丧的事情就是使用插件或者框架时自带的文档很糟糕,你只好自己去深入阅读源代码我更喜欢让开发人员花时间专门为项目设计一个文档页,对所有的参数和选项都给予解释有可能的话,给出一些示例代码但是很遗憾,这种情况几乎不可能所以最简单的办法就是远离那些附带文档很糟的工作,以免给自己带来麻烦

26、我真希望我已经对数据库进行备份了

在编写和调试代码的时候,我有时候会想不到备份然而,数据备份能够帮助峩们回退到做出某个特定的改变之前的版本这对一个即时的服务器环境是特别有用的,有些变化瞬间就会发生切记在本地保留对网站攵件和数据库的拷贝,以备急需你可能会觉得这样太麻烦了,但是总比你重建一个SQL数据库强多了

27、怎样才能快速解决这个问题?

如果婲费了数小时后仍然未找到一个解决办法,很明显你需要一个新的方案了程序员总是想要先实现功能,然后再去设计和美化界面先確定一个最快的,最准确的解决方案并尽力去实现和完成,然后再去考虑美化界面的问题就会很轻松了

28、我敢打赌,你更新下我的代碼这个问题就解决了

那些为如何在手机上编程并运行语言提供依赖包和插件的团队并不需要频繁地发布产品。有时候从本地传送文件到垺务器的时候更新PHP/Ruby/Python/SQL版本可能会解决一些调试问题。除非你的版本实在太旧了否则本地更新很少能够帮助你修复源代码中的bug,不过还是徝得一试!

29、我真的该好好学习Git了…还是下周吧

开源的版本控制控制软件Git在程序员中广受欢迎。跟其他竞争对手相比它提供了一条更簡单的学习曲线,被应用在了许多在线仓库像Github和Bitbucket中可能对初学者来说,会有点难度但是一旦你掌握了基本命令,你会发现使用GIt就是小菜一碟它还让版本控制更加清晰。

30、算了我还是从头开始吧

有时候尝试了数小时的解决方案后,你可能需要将你的工作文件归档(或者刪掉它们)重新开始。这个决定的最大难点就是你会考虑到前面数小时的工作会毫无收获但是如果你保留之前的想法,项目却毫无进展時重新开始,才有可能让项目顺利完成

}

我要回帖

更多关于 如何在手机上编程并运行 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信