客户端
快来分享你的内容吧~
- 2025-11-23·后端开发
- 2024-12-21·Android开发
offer选择:美团&腾讯 二选一Offer 描述方向是客户端开发。一共是两个offer,美团 & 腾讯。美团(base北京)是做支付的业务,薪资是白菜这一档,目前来说在犹豫要不要签。腾讯(base深圳)是做游戏分发的业务,下一周开奖,是转正offer。个人情况和职业目标个人对于业务选择上没有很强的倾向性,对于城市也没有太强的倾向性。就是想多干几年先积累工作经验。如果薪资不满意未来可以尝试着跳槽。目前美团这边大概三方到这周的有效期...查看全文程序员鱼皮:的确是个很难的选择,让我回忆起了自己当时拿到腾讯转正名额后等待聊薪资时的紧张感。首先,对于这个时间上的冲突,我的建议是 “思考最坏的结果、并且问自己能否接受这个结果”,比如你就假定腾讯开奖是白菜价,再来跟美团比较,你会如何选择呢?如果在这个假设下,你依然会选择腾讯,那么其实也没什么好犹豫的了对吧?说明你对腾讯的业务、氛围或者个人发展的认可高于短期薪资的吸引力;反之,如果美团在这种情况下更有吸引力,
社招-京东零售-App开发工程师岗-动态化方向(共四面)
## JD(招C++技术栈) > 岗位职责及目标: > 1. 负责全端动态化的规划和落地; > 2. 负责动态化容器、底层引擎软件架构设计及开发工作; > 3. 负责动态化容器、底层引擎的性能和内存优化; > 4. 负责动态化引擎在跨Android、iOS、鸿蒙多平台的模块设计和编码实现。 > 任职要求 > 1. 全日制本科及以上学历,计算机或相关专业; > 2. 熟悉动态化框架的架构设计和落地实现,有相关的成功经验; > 3. 精通 Android、iOS、CSS Flexbox 等布局方案; > 4. 熟悉一种原生动态化框架方案,以 JSON、XML 等 DSL 进行布局的方案; > 5. 精通移动端 Java/Kotlin,Objective-C/Swift 等平台 Native 语言编程,熟悉 C/C++ 编程者优先; > 6. 熟悉 JSC、V8、QuickJS、Hermes 任一 JS 引擎; > 7. 有良好的团队沟通、协调能力和责任心; > 8. 具备较强的自驱力和学习能力。 > 符合京东价值观:客户为先、创新、拼搏、担当、感恩、诚信。 ## 2025.11.19 一面(同伴面) 1. 介绍每个项目,面试官针对项目提问 2. 你的技术栈是什么(自我介绍里没说) 3. Java,JvaScipt,OC,Swift知道吗(和部门业务相关) 4. 算法题:字符串反转怎么实现,有几种方法可以实现?如果是对一个包含英文单词的字符串进行反转呢?(单词字符串不需要反转,只反转单词即可),有几种方法可以实现? 5. 结构体大小,有函数的结构体的大小,有shared_ptr 指针的结构体大小分别是多少? 6. 结构体前面用 alignas(64) 修饰是什么含义,对齐应该写多少合适? 7. 结构体里的变量内存布局? 8. struct 里边重写一个operator = 操作符,我们可以在结构体之外重写 operator = 操作符吗 9. std::variant 和 std::any 的区别。(注:C++17引入) 10. std::tuple (C++11 开始引入) 11. 子类 CC 继承 父类 AA,AA* aa = new CC()类初始化顺序是什么样的,成员变量初始化顺序是什么样的,构造函数的初始化列表和在构造函数里面进行的初始化,先后顺序怎样的。 12. 什么是完美转发? 13. 函数传参中传变量,传指向这个变量的指针,传引用有什么区别? 14. 常量引用会有什么限制?真的不能改吗,还是说有办法改? 15. 看过汇编代码吗? 16. C++ 中有栈内存和堆内存,在使用场景上,速度上有什么分别,或者说写代码时我们如何考量使用哪一个? 17. rust知道吗 18. vector底层数据结构,vector和 list的区别, C++ 编译器下 vector 扩容规则是啥样的 19. 实现一个生产者消费者模型。生产者生产5个东西,然后消费者开始消费这5个,消费者5个消费完了,然后生产者再生产5个,消费者再消费五个,就是这样不断的来回。 20. 一个方法里边操作一个静态变量,这个静态变量是在别处被定义的,这个方法被并发调用,如果仅仅需要保证改变量的内存可见性,我有哪些做法? 21. 互斥锁,lock_guard, 条件变量的使用 22. 是否了解模板元编程 23. 对 RAII 的理解 24. C++里面没有 GC机制,怎么能避免内存泄漏,还有尽量减少内存开销 25. 智能指针的循环引用怎么解决? 26. 平常写代码会用到哪些AI工具 27. 说下 MCP 协议 28. AI大语言模型的上游,中游,下游是指什么,你了解多少? 29. Agent 是什么,智能体是什么 30. 反问 > 下午三点面试,面到4点多,接着hr面,说是为了加快面试流程。当天晚上约了二面。 ## 2025.11.21 二面(面试官是我的+1) 1. 问项目中的一些细节 2. 场景题: 消息队列中如何控制消息是一个一个给出去的。现在有一个队列里边放多个任务(执行任务的过程可以理解为是执行函数的过程),怎么能够保证队列中的任务是一个一个被消费掉的。 3. 算法题: Leetcode 543. 求二叉树的直径 > 之前没有刷过这道题,没写出来。 > 问递归深度过深,栈溢出怎么办,答可以采用迭代法。 > 要求分别使用递归法和迭代法实现。 > 官方给的解题思路挺巧妙的,但是代码不是很友好。 > 这里给出我自己的题解,已AC,供参考: > https://leetcode.cn/problems/diameter-of-binary-tree/solutions/139683/er-cha-shu-de-zhi-jing-by-leetcode-solution/comments/3176713/ > 4. 反问 此时已经快到面试尾声,前面答的不是很好,惭愧。 - 问题1:请面试官介绍下组内业务 这个问题是激发面试官自我表达的欲望,人们都愿意分享自己熟悉的领域的事务。让面试环节有来有往。 - 问题2:如果我入职,您期待我在入职后半年,一年的时间分别具备什么样的能力,达成什么样的业绩,有什么样的产出。 > 因为特意搜过这个岗位(端动态化)的一些公众号文章,以及我自己对于JD拆的很细,让AI帮我总结了许多资料,所以面试官说到的一些业务内容和挑战我大概知道在说什么。 > 当他提到要解决什么样的问题的时候我也会联想自己过去做过什么事情,表达我有相关的经验,我有能力解决你说的这些问题。 > > 感觉得聊了半小时左右。能接住面试官的话,并针对性的做一些提问或着给出自己的理解和看法。 Tips: 反问实际上仍然是一个展示个人能力的机会。即使前面没答好,也不要放弃,试着展示自己的稳定性,对这个岗位极大的兴趣和匹配度。 ## 2025.11.26 三面(面试官是我的+2) > 两个面试官(猜测一个是 hr, 一个是 老板),面试时间40min > 前五个问题都是围绕我的项目相关的,看看就行。 > 大家专一地准备自己项目中涉及到的技术点就好。 1. 客制化内核会带来什么样的效果呢?比如说有什么样的一些提升吗? 2. 后续我们希望你在coding上能有更多的能力体现,有没有那种开发的项目?在你的技术点上体现的比较多的项目,我们讨论下? 3. 了解memory tag 吗 4. 如何定位野指针,有什么工具或者机制可以做。 5. 介绍下ASAN机制 6. 上一家工作中coding代码量大概有多少? 7. gap期间在做什么? 8. 离职时候的职级和绩效 9. AI 方面你了解什么,用过什么,做过什么 10. 反问 ## 2025.12.1 交叉面 > 跨部门的同事面,面之前网上搜了下这一面主要考察跨部门协调、沟通能力。所以提前准备了一些跨部门合作沟通解决问题的部门在项目介绍的时候去说。 问的所有问题都是围绕着项目展开的,这里我个人的工作项目对大家没有参考意义就不放出来了。 面试反问环节大家还是要精心准备两个问题。 ## 2025.12.2 进入收集薪资环节。四轮面试已通过。 > 祝看到这里的大家都好运!
安卓基础学习总结
安卓学习总结 Android系统四大组件 (1)活动(Activity):是所有Android应用程序的门面,凡是在应用中你看得到的东西,都是放在活动中的。 (2)服务(Service):你无法看到它,但它会一直在后台默默地运行,即使用户退出了应用,服务仍然是可以继续运行的。 (3)广播接收器(Broadcast Receiver):广播接收器允许你的应用接收来自各处的广播消息,比如电话、短信等,当然你的应用同样也可以向外发出广播消息。 (4)内容提供器(Content Provider):为应用程序之间共享数据提供了可能,比如你想要读取系统电话簿中的联系人,就需要通过内容提供器来实现。 Activity Activity四种状态,七个回调方法,三种生存期,四种活动启动模式 运行:当一个活动位于返回栈的栈顶时,这时活动就处于运行状态。 暂停:当一个活动不再处于栈顶位置,但仍然可见时,这时活动就进入了暂停状态。只有在内存极低的情况下,系统才会去考虑回收这种活动。 停止:当一个活动不再处于栈顶位置,并且完全不可见的时候,就进入了停止状态。当其他地方需要内存时,处于停止状态的活动有可能会被系统回收。 销毁:当一个活动从返回栈中移除后就变成了销毁状态。系统会最倾向于回收处千这种状态的活动,从而保证手机的内存充足。 onCreate():在活动第一次被创建的时候调用。在这个方法中完成活动的初始化操作,比如说加载布局、绑定事件等。 onStart():在活动由不可见变为可见的时候调用。 onResume():在活动准备好和用户进行交互的时候调用。此时的活动一定位于返回栈的栈顶,并且处于运行状态。 onPause():在系统准备去启动或者恢复另一个活动的时候调用。执行后仍然可见但不可交互。 onStop():在活动完全不可见的时候调用。执行后不可见。 onDestory():在活动被销毁之前调用,之后活动的状态将变为销毁状态。 onRestart():在活动由停止状态变为运行状态之前调用,也就是活动被重新启动了。 完整生存期:活动在onCreate()方法和onDestroy()方法之间所经历的,就是完整生存期 可见生存期:活动在onStart()方法和onStop()方法之间所经历的,就是可见生存期。 前台生存期。活动在onResume()方法和onPause()方法之间所经历的就是前台生存期。 活动的四种启动方式 standard: 在standard 模式(即默认情况)下,每当启动一个新的活动,它就会在返回栈中入栈,并处于栈顶的位置。对于使用standard 模式的活动,系统不会在乎这个活动是否已经在返回栈中存在,每次启动都会创建该活动的一个新的实例。 singleTop: 在启动活动时如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不会再创建新的活动实例。 singleTask: 每次启动该活动时系统首先会在返回栈中检查是否存在该活动的实例,如果发现已经存在则直接使用该实例,并把在这个活动之上的所有活动统统出栈,如果没有发现就会创建一个新的活动实例。 single Instance: 会有一个单独的返回栈来管理这个活动,不管是哪个应用程序来访问这个活动,都 共用的同一个返回栈,也就解决了共享活动实例的问题。 Android四种基本布局 线性布局(LinearLayout): 会将它所包含的控件在线性方向上依次排列 android:orientation:指定vertical是垂直方向排列 ,指定horizontal ,控件就会在水平方向上排列。 android:layout_gravity:指定控件在布局中的对齐方式 android:gravity:用于指定文字在控件中的对齐方式 android: layout_weight:系统会先把LinearLayout下所有控件指定的layout_weight值相加,得到一个总值,然后每个控件所占大小的比例就是用该控件的layout_weight值除以刚才算出的总值。 相对布局(RelativeLayout): 通过相对定位的方式让控件出现在布局的任何位置 android:layout_alignParentLeft:表示让一个控件位于其父控件的左侧 android:layout_alignParentTop:表示让一个控件位于其父控件的顶部 android: layout_alignParentRight:表示让一个控件位于其父控件的右侧 android:layout_alignParentBottom:表示让一个控件位于其父控件的底部 android:layout_centerInParent:表示让一个控件位于其父控件的中间 android:layout_above:表示让一个控件位于另一个控件的上方 android:layout_below:表示让一个控件位于另一个控件的下方 android:layout_toleftOf:表示让一个控件位于另一个控件的左侧 android:layout_toRightOf:表示让一个控件位于另一个控件的右侧 android:layout_alignLeft:表示让一个控件的左边缘和另一个控件的左边缘对齐 android:layout_alignRight:表示让一个控件的右边缘和另一个控件的右边缘对齐 帧布局(FrameLayout): 没有方便的定位方式,所有的控件都会默认摆放在布局的左上角 android:layout_gravity:指定控件在布局中的对齐方式 百分比布局(PercentFrameLayout和PercentRelativeLayout): 允许直接指定控件在布局中所占的百分比 添加依赖“com.android.support:percent:24.2.1" app:layout_widthPercent:表示确定控件宽度在父控件中所占比例 app:layout_heightPercent:表示确定控件高度在父控件中所占比例 绝对布局(AbsoluteLayout): 表格布局(TableLayout): Fragment四种状态,重要回调方法,生命周期 运行:当一个碎片是可见的,并且它所关联的活动正处千运行状态时,该碎片也处于运行状态。 暂停:当一个活动进入暂停状态时(由于另一个未占满屏幕的活动被添加到了栈顶),与它相关联的可见碎片就会进入到暂停状态。 停止:当一个活动进入停止状态时,与它相关联的碎片就会进入到停止状态,或者通过调用FragmentTransaction 的remove()、replace()方法将碎片从活动中移除,但如果在事务提交之前调用addToBackStack()方法,这时的碎片也会进入到停止状态。总的来说,进入停止状态的碎片对用户来说是完全不可见的,有可能会被系统回收。 销毁:碎片总是依附于活动而存在的,因此当活动被销毁时,与它相关联的碎片就会进入到销毁状态。或者通过调用FragmentTransaction 的remove() 、replace()方法将碎片从活动中移除,但在事务提交之前并没有调用addToBackStack()方法,这时的碎片也会进入到销毁状态。 onAttach():当碎片和活动建立关联的时候调用 onCreateView():为碎片创建视图(加载布局)时调用 onActivityCreated():确保与碎片相关联的活动一定已经创建完毕的时候调用 onDestroyView():当与碎片关联的视图被移除的时候调用 onDetach():当碎片与活动解除关联的时候调用其他 广播接 收器(Broadcast Receiver) 广播包括标准广播和有序广播 按方式分为全局广播和本地广播 本地广播只能够在应用程序的内部进行传递,并且广播接收器也只能接收来自本应用程序发出的广播。 本地广播的优势: 可以明确地知道正在发送的广播不会离开我们的程序,因此不必担心机密数据泄漏。 其他的程序无法将广播发送到我们程序的内部,因此不需要担心会有安全漏洞的隐患。 发送本地广播比发送系统全局广播将会更加高效。 前者是异步操作,后者则是同步操作,后者可以在标签里面添加优先级就可以保证广播的有序发送和接收了。 广播注册也包括两种动态注册和静态注册 注册广播的方式一般有两种,在代码中注册 和在AndroidManifest.xml中注册,其中前者也被称为动态注册,后者也被称为静态注册。 动态注册只需要新建一个类,让它继承自 BroadcastReceiver ,并重写父类的onReceive() 方法就行了。最后要取消注册,即在onDestroy()方法中来进行取消。但有一个弊端就是只能在程序启动的时候才能接收到广播。 静态注册则解决了这个问题,静态注册只需要在AndoridManifest.xml文件中写入<receiver>标签并在 标签里添加了相应的action。另外,监听系统开机广播 也是需要声明权限的,可以看到,我们使用 标签又加入了一 条android.permission.RECEIVE_BOOT_COMPLETED 权限。 内容提供器(Content Provider) 概念和优点: 主要用于在不同的应用程序之间实现数据共享的功能,它提供 了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全 性。目前,使用内容提供器是Android实现跨程序共享数据的标准方式。 不同于文件存储和SharedPreferences存储中的两种全局可读写操作模式,内容提供器可以选择只 对哪一部分数据进行共享,从而保证我们程序中的隐私数据不会有泄漏的风险。 两种用法: 使用现有的内容提供器来读取和操作相应程序中的数据。 借助该类ContentResolver。通过Context中的getContentResolver() 方法获取到该类的实例。 ContentResolver中提供了一系列的方法用于对数据进行CRUD操作,区别是接收的参数是URi(内容URI) 创建自己的内容提供器给我们的程序的数据提供外部访问接口。 新建一个类去继承ContentProvider,重新该类下面的六个方法。 了解活动和内容提供者是如何联系的 前者编写一个页面,添加一些按钮等功能,当点击按钮之后会通过一个uri,通过使用 ContentProvider 类里面的getContentResolver 方法来传递和操作对应的数据内容,同时内容提供者是实现了ContentProvider 类,同时继承了里面的六个方法,可以根据对应的uri来进行区分操作对应的数据,可以保证将数据共享出去。 服务(Service) 是Android中实现程序后台运行的解决方案,它非常适合去执行那些不需要和用 户交互而且还要求长期运行的任务。 解析异步消息处理机制 01. Message Message是在线程之间传递的消息,它可以在内部携带少量的信息,用于在不同线程之间交 换数据。 02. Handler Handler顾名思义也就是处理者的意思,它主要是用于发送和处理消息的。发送消息一般是 使用Handler的sendMessage() 方法,而发出的消息经过一系列地辗转处理后,最终会传 递到Handler的handleMessage() 方法中。 03. MessageQueue MessageQueue是消息队列的意思,它主要用于存放所有通过Handler发送的消息。这部分消 息会一直存在于消息队列中,等待被处理。每个线程中只会有一个MessageQueue 对象。 04. Looper Looper是每个线程中的MessageQueue的管家,调用Looper的loop() 方法后,就会进入到一 个无限循环当中,然后每当发现MessageQueue中存在一条消息,就会将它取出,并传递到 Handler的handleMessage() 方法中。每个线程中也只会有一个Looper 对象。 首先需要在主线程当中创建一个Handler 对象,并重写 handleMessage() 方法。然后当子线程中需要进行UI操作时,就创建一个Message 对象,并 通过Handler将这条消息发送出去。之后这条消息会被添加到MessageQueue的队列中等待被处 理,而Looper则会一直尝试从MessageQueue中取出待处理消息,最后分发回Handler的 handleMessage() 方法中。由于Handler是在主线程中创建的,所以此时handleMessage() 方法中的代码也会在主线程中运行。 服务的生命周期如下: onCreate() 、onStartCommand() 和onDestroy() 这3 个方 法,。 其中onCreate() 方法会在服务创建的时候调用 onStartCommand() 方法会在每次服务启动的时候调用 onDestroy() 方法会在服务销 毁的时候调用。 一般的服务是后台服务,创建前台服务的方法也很简单 Notification notification = new NotificationCompat.Builder(this) .setContentTitle("This is content title") .setContentText("This is content text") .setWhen(System.currentTimeMillis()) .setSmallIcon(R.mipmap.ic_launcher) .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)) .setContentIntent(pi) .build(); startForeground(1, notification); 安卓的网络技术的使用 主要包括两种自带的网络请求: :HttpURLConnection和HttpClient ( 在Android 6.0系统之后已废除) 开源项目 OkHttp 操作很方便,更简单易用。 解析XML格式和json数据 的方式 学习安卓的服务service相关概念和实战 服务(Service)是Android中实现程序后台运行的解决方案,它非常适合去执行那些不需要和用 户交互而且还要求长期运行的任务。 项目总结 PagerAdapter 一个用于 ViewPager 的自定义 PagerAdapter,主要作用是实现 无限循环轮播 的效果。 这个适配器适用于简单的无限轮播场景,比如Banner广告、引导页,优点是代码简洁,直接复用现有视图。但对于复杂场景,建议考虑更优化的方案,比如RecyclerView 或第三方库如 ViewPager2 ImageView 是用于在界面上展示图片的一个控件,它可以让我们的程序界面变得更加丰富多彩。BaseAdapter 是 Android 中一个 抽象基类,用于为 ListView、GridView、Spinner 等列表型控件提供数据适配功能。它是所有 Adapter 的父类,定义了 Adapter 的核心行为规范。 Intent数据回传 由于在一个活动中有可能调用startActivityForResult()方法去启动很多不同的活动,每一个活动返回的数据都会回调到onActivityResult()这个方法中,因此我们首先要做的就是通过检查requestCode的值来判断数据来源。确定数据是从SecondActivity返回的之后,我们再通过resultCode的值来判断处理结果是否成功。最后从data中取值并打印出来,这样就完成了向上一个活动返回数据的工作。 onActivityResult()方法带有3个参数: 第一个参数requestCode, 即我们在启动活动时传入的请求码。 第二个参数resultCode, 即我们在返回数据时传入的处理结果。 第三个参数data, 即携带着返回数据的Intent。 bug修复 天气项目成功解决所有问题,目前可以正常启动 前期主要卡顿的两个点 1,LitePal依赖不能成功拉取下来,后续直接通过jar包的方式来拉取依赖 2,省份和城市不能正确显示,主要的原因是安卓设备没有联网导致的网络不通,不能正确响应数据 3,另外就是点击天气不能正确回显,发现问题主要是网络响应的数据返回错误。 每次选择城市进行天气的选择时候,都会走缓存导致主页的城市都是缓存的,以至于出现bug 寻找了两种思路 1.每次设置缓存的时候设置缓存时间,查询的时候会判断缓存是否过期,如果过期重新从网络查询。 2,直接根据 instanceof 关键字可以用来判断一个对象是否属于某个 类的实例 ,如果还是主活动的实例则直接按照原本逻辑,否则重新查询当地天气
腾讯pcg客户端实习基地面经
腾讯pcg客户端面试: 1.自我介绍(两分钟) 2.实习期间做的工作(答的比较结巴),问了算法怎么工作,效率时间如何,担任算法小组长做了什么统筹规划工作(10min) 3.ai平常工作中用的多不多,具体的例子? 跟技术联系到一起,牵扯到后面的oj项目。 4.项目架构设计? 回答了各个微服务怎么设计,都是什么作用。 5.上线以后访问量很大怎么应对? 答了面试鸭中的一些技术(限流熔断、hotkey、多级缓存) 6.项目进行到什么阶段了,后续做什么? 后续上线,但是要做些限流策略,后续还想引入大模型 7.两道算法题。 第一道:找出不重复字母出现在字符串中的第一个位置。用的acm模式 先跟面试官谈了思路,没有问题,本来用的hashmap,结果写的时候忘了map基本方法了。。编译器有提示但没细看,感觉太长时间不刷题手生,还紧张,脑子一坨了。突然觉得set也行, 临时换用set,面试官说set可能不行,我当时还觉得可以,做一会儿发现确实不行,蠢哭了。换用map,结果忘了getOrDefault这个函数,面试官又帮我写代码。。最后终于做出来了。 第二道:最长递增子序列(动规) 忘了咋做了。。。 最后问面试官如何评价表现:他说前面流程挺流畅,就是算法方面要加强。技术栈不重要,客户端上手很快的。 面试全程没问八股。。。 最大感受:面试官人真好,我真蠢。
找伙伴
#找伙伴# 产品设计师&UI设计师 具备优秀的沟通协调能力、团队合作精神及责任心。 负责产品的整体规划与设计,确保产品功能符合用户需求和市场趋势。 收集并与技术沟通,分析并支持产品重要决策。 协调团队内部资源,确保产品按时高质量上线。 熟练掌握Photoshop、Illustrator、Figma、Sketch等设计工具。 Android客户端开发 具备优秀的沟通协调能力、团队合作精神及责任心,对技术充满向往。 熟悉Java/Kotlin语言,熟悉Android SDK及相关开发工具(如Android Studio)。 熟悉Android系统的架构原理,包括Activity、Service、BroadcastReceiver等组件。 熟悉常用的第三方库和开源框架(如Retrofit、OkHttp、Glide等)。 熟悉MVVM、MVP架构。 如果你向往安卓系统开发,那就更欢迎了。 以上最重要的是积极的态度,沟通协调能力和团队合作精神,因为是团队作战,技术是可以学的(提供学习资料及项目机会)因此并不是最重要的,当然如果你会,当然更欢迎。 同时,我们的基建非常完善,CICD,组件库,SDK,我们都在做。如果你不想单独作战,来吧,加入我们,联系方式:微信guanhaiwangchai、a13186008666 <img src="https://pic.code-nav.cn/post_picture/1835999327399264257/xbBDGoKSyJ7hZWZ5.webp" alt="微信图片_20241221183342.png" width="455px" /> <img src="https://pic.code-nav.cn/post_picture/1835999327399264257/ejpX4Dx514fS9VDg.webp" alt="微信图片_20241221183349.png" width="447px" /> <img src="https://pic.code-nav.cn/post_picture/1835999327399264257/J5ZwZpTzpmuvdJS3.png" alt="微信图片_20241221183356.png" width="440px" /> <img src="https://pic.code-nav.cn/post_picture/1835999327399264257/M9AO5Iwjgi6QUjW7.webp" alt="微信图片_20241221183437.png" width="100%" />
offer选择:美团&腾讯 二选一
### Offer 描述 方向是客户端开发。 一共是两个offer,美团 & 腾讯。 美团(base北京)是做支付的业务,薪资是白菜这一档,目前来说在犹豫要不要签。 腾讯(base深圳)是做游戏分发的业务,下一周开奖,是转正offer。 ### 个人情况和职业目标 个人对于业务选择上没有很强的倾向性,对于城市也没有太强的倾向性。就是想多干几年先积累工作经验。如果薪资不满意未来可以尝试着跳槽。 目前美团这边大概三方到这周的有效期,但腾讯那边要下一周才能开奖。所以基本上在盲盒阶段就得二选一 ### Offer 分析 美团:面了三轮,面试官人都蛮好,也私下聊过,希望我能去(虽然给了一个白菜……)组内人比较多。 腾讯:业务更熟悉,组里面老员工多,人少。氛围不错。 总体workload两个地方都差不多,不过鹅厂的福利看起来要比开水团要好。 ### 疑问与困惑 首先是因为三方这个的问题,在开奖之前就要做选择。 近期看到offershow上面的薪资开奖感觉腾讯的有点不及预期,不知道最后会不会给一个烂白菜。虽然有收到保温电话但还是非常焦虑。 以及不知道这个方向未来发展如何,因为有看到很多平台上有很多唱衰的言论。 ### 期望建议 希望得到一些选择上的建议。以及如果未来做这个方向,有什么可以进行自我提升的地方。(因为网上教程还是更集中在前后端,感觉这个方向很冷门。)
关于iOS开发的问题
<html> <head></head> <body> <div class="content ql-editor"> <p><strong>球友提问:</strong></p> <p><br></p> <p>对于求职方面。我想请教一个小问题,目前国内IOS开发岗位需求是否有潜力呢?Swift自学可行性大吗?因为我最近在选最后一个学期的课程,我并没有选择Swift而是专注于数据库和云计算等领域的学习,但我也不确定自己是否要从事IOS开发工作。</p> <p><br></p> <p><strong>回答:</strong></p> <p><br></p> <p>同学你好,非常感谢你的提问哈。对于这个问题,我可能还是有点发言权的。</p> <p><br></p> <p><strong>国内iOS开发岗位需求是否有潜力?</strong></p> <p><br></p> <p>这个问题想必我也是瞒不住的,多逛逛脉脉就知道,客三消可不是开玩笑的。移动开发早在十年前还是很热门的方向,但由于目前互联网市场的日渐饱和,由增量市场转变为存量市场,这就导致移动端开发的需求量已经减少了很多。</p> <p><br></p> <p>小公司往往不需要很专业的单端开发,找个前端整一整跨端项目就可以了,一份代码多端复用这才是降本增效的核心。但大公司为了突破巨无霸app的用户瓶颈,依旧是需要很多专精的客户端开发,核心工作还是在提升用户体验以及运行性能上。</p> <p><br></p> <p>所以这个问题的结论就是: iOS岗位的需求还是会有的,但大多集中在一线城市,大厂,以及较为成熟的项目中。对人的要求会更高,更偏底层技术,更偏基础建设。看你怎么去选择了,光做业务肯定是没啥潜力的,还是得去卷技术深度或者管理能力。</p> <p><br></p> <p><strong>Swift自学可能性大吗?</strong></p> <p><br></p> <p>这个问题就见仁见智了。我是觉得swift自学就够了,swift本身就是为了让开发者甚至是产品设计师能够更轻松的构建iOS应用,所以只要有一些编程基础,自学完全是足够的。</p> <p><br></p> <p>在学校里,我觉得还是需要注重基础理论的学习,所以我觉得你在最后一个学期选择数据库和云计算相关的课程肯定比选iOS开发要强的多。</p> <p><br></p> <p>毕竟你也没想好要不要做iOS,没必要就先投入太多精力在这上面。校招的可能性还是很多的,可能找工作的时候就完全不想整iOS了。很正常,所以现在专注提升更基础的能力是最合适不过的。真想干iOS,花一两个月时间恶补一下就行,并且现在大厂招客户端都是不要求有相关经验的,会编程就行。</p> <p><br></p> <p>加油吧。</p> </div> </body> </html>
客户端发展前景
你好,我进公司后也是搞客户端的,客户端的职业发展是不是相对较窄呢 谢谢
客户端发展前景
你好,我进公司后也是搞客户端的,客户端的职业发展是不是相对较窄呢 谢谢


