文章首发到公众号:月伴飞鱼,每天分享程序员职场经验+科普AI知识!
大家好呀,我是飞鱼。
很多程序员初学编程那会,几乎都有一个成为架构师的梦想。
❝
毕竟不想当架构师的程序员不是一个好程序员。
这里有几个架构师需要具备的能力模型:
❝
技术深度和广度:
- 具备深厚的技术功底,同时对相关领域非常熟悉与了解。
经验积累:
- 具备在某一领域,有非常丰富的行业经验。
- 具体涉及到系统设计、性能优化、风险管理等方面。
业务理解和沟通能力:
- 需要理解业务需求,将业务目标转化为系统设计。
- 需要与不同角色进行高效的沟通,包括与非技术人员的沟通。
领导和管理能力:
- 在一些情况下,架构师可能需要领导团队、制定技术方向。
学习和适应能力:
- 需要不断学习新的技术和趋势,并将其应用到实际项目中。
其实有些程序员可能更喜欢专注于编码本身。
❝
对于涉及更广泛系统设计和管理方面的工作不感兴趣。
他们可能更倾向于深入技术领域而非走向管理和架构方向。
不过能成为架构师还有几个点很关键:
❝
想成为架构师至少要有一个好平台,还要有毅力钻研技术并付诸实践。
- 而且要经历各种各样的场景。
最好还要有一个好团队一起努力,毕竟一个人的精力是有限的。
不过并非每个程序员都适合成为架构师,不同人有不同的兴趣和职业目标。
有啥其他看法,欢迎在评论区留言讨论。
❝
想看技术文章的,可以去我的个人网站:hardyfish.top/
- 目前网站的内容足够应付基础面试(
P6
)了!
每日一题
题目描述
❝
给你一个 非空 整数数组
nums
,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
示例 1 :
ini
输入:nums = [2,2,1]
输出:1
示例 2 :
ini
输入:nums = [4,1,2,1,2]
输出:4
示例 3 :
ini
输入:nums = [1]
输出:1
解题思路
❝
位运算
数组中的全部元素的异或运算结果即为数组中只出现一次的数字。
代码实现
Java
代码:
Java
class Solution {
public int singleNumber(int[] nums) {
int single = 0;
for (int num : nums) {
single ^= num;
}
return single;
}
}
Python
代码:
Python
class Solution:
def singleNumber(self, nums: List[int]) -> int:
return reduce(lambda x, y: x ^ y, nums)
Go
代码:
Go
func singleNumber(nums []int) int {
single := 0
for _, num := range nums {
single ^= num
}
return single
}
复杂度分析
❝
时间复杂度:
O(n)
,其中n
是数组长度。
- 只需要对数组遍历一次。
空间复杂度:
O(1)
。