新的开始-学会多角度的思考方式
本文部分内容由 AI 辅助生成,并由本人审核整理。 三年前,我走出校园,踏入职场。那时的我,热情洋溢、目标明确,却也带着些许稚气与单一视角。如今,三年过去,我开始重新审视自己——不仅是一个技术人,更是一个需要不断成长的思考者。 🎯 单一思维的局限 刚开始工作的那段时间,我总是习惯用“对”与“错”去判断事情的结果:项目延期就是失败,方案被否决就是能力不足,沟通碰壁就是对方不理解我。 但后来我渐渐意识到,现实远比课堂复杂。技术实现的背后,有资源的权衡、有时间的博弈;而沟通的背后,更涉及角色的定位、利益的考量和长期的合作策略。 我意识到,如果总是站在一个角度看问题,结果往往就是钻牛角尖、心态崩溃,甚至错失成长的机会。 🔍 多角度思考,意味着什么? 学会多角度思考,并不等于放弃立场,而是一种认知层次的提升: 从技术视角 看问题:方案是否稳健?是否具备可维护性? 从产品视角 看问题:用户真正需要什么?使用场景是否清晰? 从团队视角 看问题:是否利于协作?是否能降低沟通成本? 从管理视角 看问题:风险是否可控?决策是否具备长远价值? 当我开始尝试从不同角度去看待每一个问题,不仅解决方案变得更加全面,我的表达也更具说服力,团队的信任度也随之提升。 🌱 改变的开始,始于一次“失败” 印象最深的是一次重要的模块重构项目,我自信满满地提交了重构设计,但却被团队否决了。当时我很不服,觉得“你们就是不懂技术”。 但冷静下来后,我重新读了项目需求,也听取了产品经理和 QA 的反馈——原来我的设计虽然“技术上优雅”,但对实际业务的适配不够灵活,修改成本高,风险大。 那一刻我第一次真正体会到,多角度思考不是“迁就”,而是“全面掌握”。 🧭 三年后的我,新的开始 今天的我,已经不再是那个只关心代码是否优雅的新人。我开始关心: 为什么这个需求存在? 用户真正的痛点是什么? 技术之外,有没有更简单的路径? 我提出的意见,是否考虑到了对方的角色立场? 三年工作让我懂得:技术的成长,是基础;思维的转变,才是质变的开始。 ✅ 写在最后 新的开始,不一定是离职、转行、创业。对我而言,是每一天都提醒自己: 放下固有立场,尝试从更多角度看世界。 这不仅让我成为一个更专业的开发者,也让我成为一个更成熟、更有温度的人。 如果你也正处在职业的十字路口,希望这篇文章能带给你一点点共鸣,也祝你在新的起点上,走得更坚定、更从容 🌟
养成每天阅读的习惯 - 对于自己的告诫
周三部门leader给开了个培训会,然后会前搞了个分组小游戏,也算是加强部门中不同组之间的交流。 正常上班人与人之间的交集还是比较少的,同公司不同部门基本上不会有交集,当然我作为中台部门,自然跟项目组会有打交道的时候。 同部门不同组基本上不认识,这在中台部门应该是比较常见的,每个组涉及到的项目天差地别,很难有共同话题。再说,组内基本上也都是抱团取暖,能有一个知心朋友我觉的就很不错了,组内大多都是工作上的交流。 前面扯了一下工作人际关系,有些偏题了,leader在会上其实分享了很多,一个很重要的主题就是告诉我们要坚持,所有困难都是正常的。通过讲述自己的故事来给我们“提高自信“,当然大家都知道故事稍微会有一点润色。实际上,就拿我本人来说,差距太大了。不论是学历上、技术水平上、个人意志上是完全够不上大佬们的。从这两三个月的职场中来看,我就是一个不思进取、只会摆烂、甘心躺平的无志青年。需要不停反思,才能把自己给骂醒。 职场中来看,最重要的三点也就是我们的考核标准,结果、协作、学习。不管什么行业都离不开这三点。比较深入的来说,我最看重的是效率。没有效率,一切都是白费的,最终这三点也都没有了意义。 想着去改变、去拼,首先还是得从学习开始,需要培养自己的兴趣,这样才不至于阅读的时候总想打瞌睡。所以还是得提高自己目前技术栈的兴趣,然后强迫自己去接受新的知识。才能保证自己不被淘汰。 就喜欢瞎写一些没有逻辑的话。以后再增删改吧。
学习OpenGL - 摄像机
LookAt via GIPHY 自由移动 via GIPHY 鼠标输入 via GIPHY
学习OpenGL - 坐标系统
进入3D 更加3D 非常奇怪的立方体,没有加Z-buffer 加了Z-buffer之后,一个正常的立方体 添加更多的立方体
学习OpenGL简单的变换
简单的旋转与缩小 这里更改了Y轴的方向,变成了向右侧旋转 TexCoord = vec2(aTexCoord.x, 1 - aTexCoord.y); 随时间旋转
学习OpenGL纹理
应用纹理 纹理颜色与顶点颜色混合 纹理单元 翻转Y轴
学习着色器Shader - GLSL
输入与输出 Uniform(随时间变化) 更多属性 然后就是Shader类,这个最后我生成的如上所示 因为需要读取shader文件,这里不想使用绝对路径的,可以自己设置一下Xcode的Working Directory 在Product->Scheme->Edit Scheme,下面是我的设置。根据你自己的项目所在路径进行设置。
Learn OpenGL - Hello Triangle (M1Pro 环境环境配置)
虽然说苹果之前已经说弃用OpenGL了,全部改用Metal,但目前还是自带OpenGL库的 首先开始是环境的配置,我这里直接放弃了使用CMake,又重新把Xcode装了回来。 首先安装glfw,glew brew install glfw brew install glew 然后使用brew info ***就可以查看安装的具体路径在哪里,后续需要用到 然后是glad,进入网站gl我选择的是3.3,然后Profile设置为Core,下面注意是否勾选了Generate a loader,然后生成即可,然后我把下载下来的include里面的文件夹放到了/usr/local/include这个目录,后续也需要用到。 打开Xcode,新建一个C++命令行项目,在target项目设置哪里,选择Build Settings找到Header Search Paths(在Search Paths下面),添加两个路径,一个就是homebrew的头文件的路径,另一个就是local的头文件路径,以下仅供参考 /opt/homebrew/include /usr/local/include 然后在进入Build Phase,开始配置链接库,如下图所示 上面两个的路径就是homebrew安装库的路径,这些dylib文件就在这个文件夹下面,我上面截图用红框框住的。下面两个就是自带的直接选就行了 然后记得把之前glad生成文件src下面的glad.c文件复制进来。 注意事项 Mac 苹果芯片环境,需要注意下面几点,首先在申明的时候,需要设置GLFW_OPENGL_FORWARD_COMPAT,教程里面也说了 #ifdef __APPLE__ glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); #endif 然后就是在创建窗口之后需要再加上这么一行 #ifdef __APPLE__ glfwMakeContextCurrent(window); #endif 然后还有就是可能会报这么一个错 需要禁止Library的验证,如果没有Hardened Runtime这个,点击左上角的+ Capability即可 当改完之后,可能还会报这么一个错 这时候选择执行Product下面的Clean Build Folder就可以了 效果展示 三角形 ...
直面差距,虚心求教 --- 流水账
工作两个月了,基本没有时间去停下来好好思考一下目前的一个状态,以及之后的一个规划。 这周五在组长那里学到了很多,聊了也差不多一个小时,基本上我是一个啥也不会的状态,组长也在不停的迁就我,引导我如何去学习。 想想如果还是这样的状态,必定走不远。也是时候认真起来了。 第一个月 本人就是一个非常普通的人,来自普通的学校,能力也很普通,误打误撞进了公司,然后接触了自己并不是很熟悉的行业,组里的规划还是很清晰的,一开始就是让做一个小项目,穿插着进行一些学习计划。但基本上工作日能用来学习的时间我根本挤不出来。我总是太专注于某一件事,而不想着从多个方面去提升自己。 导师还是非常负责的,从一开始做需求分析、项目设计文档的时候,就是改了一版又一版,本以为软件工程的知识以后用到的情况会很少,程序员就蒙头写代码就行了,然而实际上文档必不可少,一开始,我连鲁棒图是啥都不记得了,设计模式该如何正确选择也摸不清头脑。还是导师一步一步带我重新回顾需求分析与设计的核心,还学到了一个重点,就是这一切的一切都是为了让自己不背锅。 我之前的想法基本上都是走一步看一步,不会关注于规划上,程序开发中,只是会在开始时想一下要做一个什么样的效果,而对于设计,总是迷茫的,遇到一个问题解决一个问题。这或许也就跟我的大学生活是一样的,总是看到什么觉得挺感兴趣的,然后就会在之后一段时间里去做这件事。从一开始的前端框架,再到Java, .NET,然后到是Python语言,逐渐接触到机器学习知识,后面又学了Swift做iOS、Mac应用,再到最后又回归本心,用C++刷算法题,重新喜欢上使用C++,当前中间也不知道经历过多少个其他的想法,参加过微信小程序比赛、设计过CPU MIPS流水线、试着自己从零写一个操作系统等。当然很多都是浅尝辄止。(当然我指的这些不是说大学专业课程的那些要求) 这样也就导致啥都接触过一点,会一点,但一直没找到自己真的擅长的、喜欢做的。我这没有规划的人生就如shit一般。虽然可能在我的一些同学中,他们都会觉得我怎么啥都会,但实际上人生如戏,我只是扮演着这么一个角色。 回到工作上,开发的过程中,实际上也越到过很多问题,我的导师是要求我必须每天开发出来其中一个部分,然后给他测试,实际上,我根本没法在一开始就考虑所有情况,往往是一部分还没有非常完善就转向下一部分,这与我导师的想法是背道而驰,做一个功能就一定要把这个功能做到极致,完美贴合需求。而我是想着是在开发过程中,开发当前模块时,也不断的完善之前的模块,思考之后的模块。我的很多观念,有时候我自己也找不出原因,而我又是一个极端固执的人,这个习惯必须得改。 跳到最后,导师检查的时候,我发现我的导师对我的要求总是要比其他新入职的员工高,同时这也是一个导师考核制度,需要导师打分,明明大家都不需要完成的一个需求,到我这就变成了一个考核项,导师测试的时候,遇到一个bug,然后就会打回去让我改,改完之后才继续进行测试。这样的效率是非常低的,本来一个一天就能测完的,大概又要花一两周。不过听他说这是在给我机会,测出来的bug越多,自然分数就越低。所以自测必须要非常仔细,然而我的导师总是有非常多新颖的测试用例。 我也与导师争论过,当时一个需求,我觉得就很奇怪,我也问了其他同期入职做新人项目的,他们都没这要求,然而让我必须完成这个,不然又要扣分,当时想着,这种机制很不公平,想要报告给组长,不过这种行为实在太幼稚了,我想想都觉得好天真啊。每个导师都有自己的一个想法,有自己的一套理念,各有各的好处吧。就这样吧,关于这个新人项目就讲到这里。 正式接触工作 一开始都是一些修改bug的任务,分析需求,从代码中找出出现问题的地方,然后进行修改。后续又做了一个工具,本以为能够很快的做出来,然而对于框架不太熟悉,也花了一段时间。
Aftership后端校招春招笔试
投了Aftership的后端开发,进了笔试,发了一个链接,是可以任意时间开发做的,只要在五天之内就行。 昨天下午空闲的时候做的。 选择题 首先是30道选择题,考的基础知识都挺扎实的,我感觉都是牛客上的原题吧。有五六道题不会吧。 算法题 然后是两道算法题, 第一道算法题送分题,判断两棵二叉树是否相同,就是一个遍历,同时对比结点的值,只要有不同就返回false。 第二道题输入是给了一个字符串,由数字组成,用空格隔开,比如"12 34 234 23 66", 给了这么一个概念,数字的权重是数字的各位相加得到的值,比如99的权重是18。 需要计算字符串中每个数字的权重,然后在字符串找到符合下面条件的两个数字 两个数字权重的差最小 然后数字的权重也要最小 数字的下标也要最小,下标是从0开始 然后就是输出,两个数字组成的数组,子数组的格式如下 [权重,下标,数字值] 然后子数组也要有顺序,首先按权重,如果权重相同,那么就按索引,都是升序的。 好像输出的时候也是要求必须是字符串,大致格式如下,具体我也不太记得了 "[[10, 1, 143][10, 6, 88]]" 我的做题思路是,首先因为都是字符串,肯定得先把字符串中解析成一个整数数组,然后应该就是动态规划了,从前往后,选择最优的两个数字。 结果 今天早上的时候就收到了感谢信,Aftership效率还是挺高的。 可能是没有HC了吧,然后我看后端主要也是用Golang,今天打开官网,发现就只招算法工程师了