IT互联网行业,和HR谈薪资的八个点(请牢记)

IT跳槽薪资谈判全攻略

说说it互联网之类公司的技术岗位的谈薪资。

文末有福利放送,文末有福利放送,文末有福利放送,重要的事情说三遍

13467292-f49c80977eccd705

1.每次跳槽只能加30%工资吗?

事实上,加薪很可能不到30%,也很可能超过100%,这要看你当前的薪资是多少。

以我08年毕业为例,毕业月薪4k,每两年跳一次槽,如果每次跳槽只加30%,十年后时月薪多少?

只有15k不到。如果每三年跳一次槽,那只有9k不到的月薪,这个数字还没有半年一年经验的新人工资高。事实上决定你跳槽拿多少工资的,是市场价和你应聘的岗位的薪资预算范围,以及你的谈判技巧决定的,和你跳槽多少次没什么关系。相反我要是十年跳了十次,每次都给我加30%,那我现在应该有55k月薪(简直疯了吧???) 也就是跳槽越多工资越高了?完全不合逻辑。

如果你上一份工作的工资低了或者在上一家工作年数长了,这一次跳槽完全可以超过30%,50%,甚至翻倍,翻三倍或更多。 为什么HR或猎头要告诉你行情是一般跳槽只加30%,这是在试探,你是不是啥都不懂的小白。也就是先上来忽悠你一下,能忽悠瘸了最好,忽悠不住的人还可以慢慢谈。

2.HR要故意压低你的工资,压下来的部分可以算自己的绩效?

实际上,recruiter才不管给应聘者开多少薪资,他们的目标就是,用人部门要几个人就给他招几个人,招齐了就完事,招不招得到人才关系到他们的绩效。倒是宁可给招来的人高一点的工资让他们稳定点,毕竟万一人走了还要重新招。而且薪资给高点招人更容易。。。至于谈薪资?薪资自然另外有专门负责谈薪资的HR管,关recruiters什么事儿。

千万不要犯病,说什么“我相信贵公司会按照成熟的薪资体系给我定一个合理的价位”,如无意外,你这么一说就会拿到岗位预算下限的薪资。毕竟HR砍你的价多多少少还是有那么一点点绩效的,正好你没要求,不如把本来给你的预算挪给别人用。(评论里有hr反对说:这是不算绩效的,嗯,那就说凭责任心吧,HR本着对企业负责的态度,或者说职业道德,只要候选人不提要求,基本上就会给你预算范围的下限工资。毕竟职业道德要求HR合理控制预算嘛。

但如果你实在太怂,要求了一个略低于预算下限的工资......那为了不打报告解释为什么给你这么低的工资,HR会给你提到预算下限,这也解释了为什么你要4k,人家给你的offer是5k,并不是人好特意多给你点。)

所以说,HR更关心的还是能不能把合适的人招来。而谈判还是需要你会谈,别犯傻。

3.填表怎么填,不要因为填个表让自己陷入谈薪的被动中。

比如,期望薪资。面试都没面,填个期望薪资有什么意义吗?你知道对方公司的薪资结构吗,交不交公积金,有多少福利,多少年终奖?

4. HR问你期望薪资你怎么办?

呵呵呵呵,期望薪资,自然是往高了要。但是要之前,先问清楚对方公司的薪资结构。

那怎么往高了提呢? 我按现在薪资算个百分比来提好不好?

错,最大的错误就是按当前薪资算个百分比来提加薪。

1 了解市场平均行情

2 了解目标岗位的预算

5. HR问你当前薪资你怎么办?

通常就是直接把现在所有的年收入除以12当做月薪报给HR。

6.为什么在职状态谈薪资比裸辞状态谈薪资优势大?

假如你现在裸辞了或者被裁员了,你上一家公司给你10k月薪。新公司的HR可能只给你开个11k,12k。虽然没高多少,但总好过没工作吧。并不是HR要压你的价,只是出于合理控制预算的职业道德,以及“你既然会裸辞,说明不是什么重要核心员工”的思考,得出的结论。 毕竟如果是核心骨干,公司是会好好供着你,不会让你心寒自己裸辞走掉的。也有很多人信奉“优秀的人才是挖来的”的理论。

总之你在职,完全可以轻易拒绝那些薪资只加一点点的offer,而你如果离职了,那很可能你能拿到的offer都是薪资只加一点点的了。如果已离职,那一般来说,你没法真正开始薪资谈判,除非你手上有别的offer。

7.不要有莫名其妙的思想包袱,谁告诉你拿了offer就一定要去的?

有些同学是这样的,今天面试完,拿到了offer,就开始心里找理由,说和这家公司投缘啊什么的,然后直接放弃了后面的面试。

没有入职,一切都是虚的。你可能没遇到过这样的情况:你去面试的公司,先给你发offer,然后在你辞职之后,通知你没有 headcount了,让你自谋生路去。

学会拖offer,一个拖。当然了,注意把握其中的度,不要拖过头。拖的时候要有合理的理由,比如离职提上去就是需要一个月才能走。还有常见的,年底面试年后入职,这是最适合拖offer的时候,很多offer都是发出去,过了年,人不来了。

8.为了进好公司,选择合适的时机。薪资并不是一切。

有些特殊情况下,我们也并不是只看薪资的。薪资并不是一切。 如果在it或者互联网相关行业做技术岗位的,为了拿到更高的薪资,我们需要简历上有亮点。

什么是亮点? 自吹自擂会什么什么技术?并没有人相信你吹的。

亮点有两个,一是名校背景,二是名企背景。 第一个就不说了,反正没有的就是没有了。第二个我们都可以有,有名的企业进去做个两三年,出来就是你简历上的亮点。何况名企薪资下限可能都比你原来的公司岗位预算上限要高。。。 那就找个好时机进名企,等你从名企出来,谈薪资时稍微掌握下技巧,拖下offer,很可能HR会主动帮你申请突破预算上限。名企背景也可以让你进下一家名企的时候异常轻松。

好时机一般是,对方大量扩招的时候、年底或某些特殊时间点之前head count用不完作废的时候。最好你有认识对方公司内部的人,可以给你第一手的消息和内推。不然就只能碰运气了,一般年底之前一两个月是个好时机。

另外在这里为大家分享一份Java架构学习路线图

架构师筑基:

从架构设计,到应用层调优,再深入了解底层原理,扎实的Java基本功才能让自己变为扫地神僧:内存模型,并发模式,线程模型,锁细节

13467292-5132913aee912c6e

开源框架解析:

框架的应用开源,也是必须的

13467292-a04a1df80d79461c

团队协作开发:

工欲善其事必先利其器,选择好的工具,提升开发效率和团队协作效率,是必不可少的:Maven,项目管理,Jenkins,持续集成,Sonar,代码质量管理,Git,版本管理

13467292-9a12782c11a97fa6

微服务架构

业务越来越复杂,服务分层,微服务架构是架构升级的必由之路。比如:微服务框架,Spring Cloud,Docker与虚拟化

13467292-0c0ba7bdadd82a58

高性能架构:

任何脱离细节的ppt架构师都是耍流氓,向上能运筹帷幄,向下能解决一线性能问题,比如:性能指标体系,JVM调优,Web调优,DB调优

13467292-94c52b9f3f7b1e76

B2C商城:

这个无需多说,没有实战的肯定不是合格的架构师

13467292-45f4241e2d0b51b8

高清大图及相关视频资料获取方式

加群即可获取 群号:923116658

点击链接加入群聊【Java架构解析】:https://jq.qq.com/_wv=1027&k=5e1QsXb

<think>好的,我现在需要处理用户的问题,用户之前询问的是关于JavaScript中currentTime的定义问题,但现在用户明确指出所有对话都基于STM32的定时器开发,并且之前的回答错误地涉及了JavaScript。首先,我需要确认用户的实际需求,可能是在STM32开发中处理定时器相关的时间定义问题。用户可能在使用定时器时遇到了currentTime的定义或使用问题,但之前误被引导到JavaScript的解决方案,导致混淆。 接下来,我需要回顾之前的对话历史,用户提到“依然没有解决currentTime的定义问题”,而之前的回答错误地提供了JavaScript的代码。用户现在纠正了这一,强调基于STM32的定时器开发。因此,我需要完全忽略之前的JavaScript内容,转而专注于STM32的定时器配置代码结构。 首先,我需要确定在STM32环境中如何定义使用currentTime变量。通常,在嵌入式系统中,currentTime可能是一个全局变量,由定时器中断服务程序(ISR)定期更新。例如,使用SysTick定时器或通用定时器(如TIM2)来产生周期性中断,每次中断发生时递增currentTime。但具体实现取决于用户的需求,currentTime可以是毫秒、微秒级别的计数器,或者日历时间。 接下来,我需要考虑用户可能的代码结构。例如,用户可能在main函数中初始化定时器,配置中断,然后在中断服务函数中更新currentTime。或者,用户可能使用HAL库或标准外设库进行开发。需要给出基于HAL库的示例代码,因为这是STM32常用的开发方式。 需要详细明以下几个步骤: 1. 定时器的初始化配置,括时钟源、预分频器、自动重装载值,以产生1ms的中断。 2. 定义全局变量currentTime,并确保其在中断服务函数中被正确更新。 3. 启用定时器中断,并在中断处理函数中递增currentTime。 4. 在主循环或其他函数中访问currentTime,用于时间相关的操作。 同时,需要注意volatile关键字的使用,因为currentTime在中断主循环中被访问,防止编译器优化导致的数据不一致问题。此外,需要确保中断优先级设置正确,避免其他中断影响定时器的准确性。 用户可能遇到的问题括:currentTime未正确递增、中断未触发、变量未声明为volatile导致的值不稳定等。需要指出这些常见问题并提供解决方法,比如检查定时器配置、确认中断服务函数名称是否正确、使用调试器查看中断是否触发等。 另外,需要提供完整的代码示例,括HAL库的初始化、中断回调函数、全局变量定义等,帮助用户直接在项目中应用。同时,解释每个部分的作用,确保用户理解代码逻辑。 最后,需要提醒用户根据具体的定时器时钟配置调整预分频器自动重装载值,以适应不同的时间基准需求。例如,如果系统时钟是72MHz,要实现1ms的中断,预分频器自动重装载值的计算方法。 总结来,我需要从STM32定时器的角度重新解释currentTime的定义使用,提供详细的代码示例配置步骤,并涵盖常见问题的排查方法,确保用户能够正确实现所需功能。</think>在STM32定时器开发中实现`currentTime`计时功能,需要以下完整配置步骤(基于HAL库): 1. **全局变量定义**(在main.c顶部添加): ```c volatile uint32_t currentTime = 0; // 必须声明为volatile ``` 2. **定时器基础配置**(以TIM2为例): ```c void MX_TIM2_Init(void) { TIM_ClockConfigTypeDef sClockSourceConfig = {0}; TIM_MasterConfigTypeDef sMasterConfig = {0}; htim2.Instance = TIM2; htim2.Init.Prescaler = 7200 - 1; // 72MHz/7200=10kHz htim2.Init.CounterMode = TIM_COUNTERMODE_UP; htim2.Init.Period = 10000 - 1; // 10kHz/10000=1Hz(1秒) htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; HAL_TIM_Base_Init(&htim2); sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig); sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig); } ``` 3. **中断配置**(在main函数初始化部分添加): ```c HAL_TIM_Base_Start_IT(&htim2); // 启动定时器中断 __HAL_TIM_ENABLE_IT(&htim2, TIM_IT_UPDATE); // 使能更新中断 ``` 4. **中断服务函数**(在stm32xxx_it.c中): ```c void TIM2_IRQHandler(void) { HAL_TIM_IRQHandler(&htim2); } // 中断回调函数(在main.c中添加) void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if(htim->Instance == TIM2){ currentTime++; // 每秒+1 } } ``` **关键配置明**: 1. **定时精度计算**: - 公式:$\Delta t = \frac{(Prescaler+1) \times (Period+1)}{f_{CLK}}$ - 示例:$\frac{7200 \times 10000}{72MHz} = 1秒$ 2. **使用规范**: - 读取时间时必须**临时关闭中断**: ```c uint32_t GetCurrentTime(void) { uint32_t temp; __disable_irq(); temp = currentTime; __enable_irq(); return temp; } ``` **典型问题排查**: 1. **时间不更新**: - 检查NVIC中断是否使能 - 确认APB1时钟使能(TIM2挂载在APB1) - 使用调试器查看TIM2_CNT寄存器是否递增 2. **时间误差过大**: - 校准系统时钟(HSE晶振起振情况) - 调整预分频器(Prescaler)周期(Period)参数 - 检查是否存在中断嵌套导致延迟 **高级应用**: ```c // 实现毫秒级计时(TIM6基本定时器示例) volatile uint32_t currentTimeMs = 0; void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if(htim->Instance == TIM6){ currentTimeMs++; // 每毫秒+1 } } // 初始化配置(1ms中断): htim6.Init.Prescaler = 72 - 1; // 72MHz/72=1MHz htim6.Init.Period = 1000 - 1; // 1MHz/1000=1KHz(1ms) ``` 建议通过`__HAL_TIM_SET_AUTORELOAD()`动态调整定时周期,实现可编程计时器功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值