iOS 天问 第4讲
组内转岗怎么看?
最近因为经济形势的问题, 公司项目研发投入有了收紧的趋势, 整体移动端研发接近停滞, 很多同事部分去做了前端, 部分如我一样,之前做过后端的或者开发安卓的, 去了新项目快调支援后端开发.
先说说目前的状态吧, 因为之前 Java
开发的时间和工作重点不在业务, 所以对于整个 Java
的技术栈, 仍有许多要学习的地方, 所以也是边业务开发, 边学习 Spring Boot
. 就时间而言大部分时间都会花费在这一块. 但是, 对于我而言, 可以说是 身在曹营身在汉, 身心还是想铺在 iOS
上, 一个是 个人还是非常喜欢移动端的研发工作, 对于个人而言, 距离自己对于某一技术方向的要求,仍有很大的距离. 所有余下的时间, 个人定制了学习计划, 包括 极客时间的 《数据结构与算法之美》 、《iOS 设计模式》、 《iOS 面试之道》、《iOS 和 macOS 性能优化》、《剑指 Offer》等, 大部分已经略读一遍, 因为自己非科班出身,时间又大部分碎片, 所以目前想以先快速补充,再细细钻研的方式,给自己扩宽眼界。 我并不以 非科班身份而觉得会妄自菲薄,大学什么样,大家心里都明白, 努力的人,在哪儿都能给自己争取一片天空。 另一方面, 我觉得非科班反而有优势, 身份的转换,给了自己更高的视角来看待行业与专业这件事, 在计算机领域, 对于我而言,并不会有掣肘在, 可能唯一要抵抗的就是,时间与长期枯燥钻研的意志消沉了。 不过自己喜欢这个行业, 喜欢计算机的世界。
总之, 我给自己定的方向是, 先在一方面成为专家, 再去精研一两门其他的方向。 条条大路通罗马,计算机的世界还是要把基础打好。 有了认识,规划, 看法也就有了.
2018年12月04日
数据结构的简单说明
摘录自: <剑指 Offer>
数据结构一直是技术面试的重点, 大部分面试题都是围绕着数组、字符串、链表、树、栈以及队列这几种常见的数据结构展开的,因此每一个应聘者都要熟练掌握这几种数据结构。
- 数组和字符串是两种最基本的数据结构,它们用连续内存分别存储数字(或其他元素)和字符。
- 链表和树是面试中出现频率最高的数据结构。由于操作链表和树需要操作大量的指针,应聘者在解决相关问题的时候一定要留意代码的鲁棒性Robustness>, 否则容易出现程序崩溃的问题.
- 栈是一个与递归紧密相关的数据结构
- 同样队列也与广度优先遍历 DFS 紧密相关
- 深刻理解这两种数据结构(指的是栈与队列)能帮助我们解决很多算法问题.
参考
2018年12月05日
递归的危险性在哪 ?
主要是递归可能造成的 栈溢出 问题
- 每个栈帧都代表一个被调用中的函数
- 递归调用使得栈帧生长, 最终栈溢出
解决方案
- 改成非递归的方式
- 限制递归深度
- 自己维护一个递归栈
- 改成 尾递归的方式, 复用栈帧
尾递归: 当递归调用是函数体中最后执行的语句, 并且它的返回值不属于表达式的一部分时, 这个递归就是尾递归. 现代的编译器就会发现这个特点,生成优化代码, 复用栈帧!! 关键是这种优化依赖于编译器, 不可靠, 很多编译器并不支持这种特性.
2018年12月06日
以何种态度做项目?
大部分人只会抱怨项目太无聊,没有挑战, 遇到问题也只会安于现状. 只有少部分人会发现工作中的"痛点", 并真正动手解决它, 给公司带来价值. 这也是提高自己,让自己和别人区分开来的重要手段! [摘自 码农翻身]
名言
任何软件工程遇到的问题都可以通过增加一个中间层来解决!