前端狂想曲之返乡转行(第一章)

文章讲述了作者在前端开发行业遇到的挑战,包括激烈的竞争和不良的竞争行为,导致作者决定转行至视频剪辑。在面试新职位时,尽管缺乏相关经验,作者仍展现出积极态度并接受了可能的培训机会。

哎,不知道从什么时候开始,前端这一行是越来越难干了,先不说技术更新的快不快的问题,当初看到我朋友分享给我的图片。不知道从哪里出来的前端开发,大家都是做了三四年了,都是用的框架来进行的快捷开发,好家伙。人家部门老大都准备要发offer了,内小子冷不丁来一句:“你们到时候给我6k就行了,然后你还可以把其他前端也踢掉,我这边还有好几个呢。”。据知情人士阐明,当时整个办公室的空气都不知不觉的冰冷了几分,就像暴风雨前的宁静一般,过了一会儿全都炸了。

“怎么会有这样的人啊!!!太过分了!!!!自己不想活还带着不让别人活!!!”,甲说:“别说招不招这个人,技术确实不错,就是人品真的极其低下,你一个人想这样可以,你想要带着你的好兄弟们一起,也可以。让把我们这帮人都踢掉是几个意思啊喂!!!苍天啊!!!”。(对话内容此处省略一万字......)一时间众人议论纷纷,从原本田园般宁静的生活,瞬间变成了战地风云5中的硫磺岛战役。而公司的部门老大最终发话道:“这个人技术可以,原本可以来,我看见他说这句话我都头皮发麻,现在敢挑唆我踢掉我手下的得力干将,以后万一升了职,指不定会背刺多少无辜的人,公司虽然平时提倡狼性文化,但是,并不代表要招这样下流的人,这个人咱们还是别要了,没有好的影响。” 而最终,这个人没有成功入职,整个公司的气氛也被恶心的够呛。

当时我看到的时候我都惊了,我在想,之前IT行业的气氛还是蛮好的,虽然累是累了点,加班勤了一点,但大家至少赚的也不差,公司的项目做的也还行。而这两年像上文内出现的类似的事情逐渐犹如雨后春笋一般逐渐漏了头,实际就代表着我们可能即将面临行业巨大的挑战,最终导致双方大战遍体鳞伤。现如今看来,或许我的遭遇就像是这场风波的牺牲品,无法继续自己喜爱的行业,无法支撑我想要的生活,无法面对我今后的人生,也许曾经的辉煌,注定从此刻开始倒转。只是我万万没想到我人生的下坡路到来的如此之快罢了。

最终,我踏上了返乡的旅途,离开杭州的前一个夜晚,终于睡了一次最安稳的觉,没有工作中的不顺,没有想着修复BUG的焦虑,没有第二天如何应付领导那种忐忑,换来更多的可能就是:“终于返乡了,只不过方式与我梦中似乎有些截然不同。”

在下火车的那一刻,我儿时的好友开车来接的我,问我接下来准备做些什么。我笑了笑,说:“听说最近几年短视频挺ok,想要去尝试转行视频剪辑,虽然之前没干过,但是我还是想试一下,毕竟人这一辈子嘛,年轻的时候还是要放荡一把,即使已经粉身碎骨一次,也不能失去勇气不是?”好友听了也就说了一句:“嗯,你能想明白也好,今年大家都不好过,能有之后的打算当然更好。”一直到家了之后就和朋友去吃喝玩乐了一下午,然后准备去看看第二天剪辑的岗位。

大概看了有一两个小时,最终只是敲定了周五和下周一的面试,小城市嘛,一般没什么竞争压力的,人才吸纳不过来,也就只能吸纳一下我们这种返乡的喽。

周五的时候出发去面试,戴上了我的防蓝光眼睛,带上了我的项链,背上和自己奋战多年的老伙计----一台廉价的HUAWEI metabook D 15,尽量保持我仅有的从容。然而面试过程实际上并不顺利,因为本身其实就没有做过剪辑的工作,而当面试官要看一下自己曾经的作品的时候我说实话一时间是不知道怎么去回答的,我仅仅只能解释道:“那个,我只是想转行剪辑,如果有培训什么的话,当然是极好的,但是我也仅仅只是用过一两次类似于pr,AE,剪映这种软件而已””。而面试官似乎也知道了我的难言之隐,他说道:“这样啊,公司这边也有培训的,但是培训也培训不了多久,最多半个月你就要开始进行工作了,可以安排培训,你考虑的怎么样?”说实话,我短时间无法把握是否有这个能力,但是我硬着头皮说:“我可以的,如果到时候你们这边觉得可以的话,直接联系我就好”最终这场面试就这么截止了。

打完这篇稿子,看了一眼时间,已经是晚上九点了,未来人生还是很彷徨,如果有前辈有转行经验的,我还是很想请教请教的,时间不早了,那么各位同学,晚安。

要让现有代码实现播放《克罗地亚狂想曲》,需要做以下几个方面的修改: ### 1. 确定音符频率和节拍 《克罗地亚狂想曲》由一系列音符组成,每个音符有对应的频率和节拍。可以通过音乐软件或者音乐理论知识获取这些信息。以下是一个简单的音符频率表示例: ```c // 音符频率表 const uint16_t note_freqs[] = { // C4 262, // D4 294, // E4 330, // F4 349, // G4 392, // A4 440, // B4 494, // C5 523 }; ``` ### 2. 定义音乐曲目 根据《克罗地亚狂想曲》的乐谱,定义一个音符和节拍的序列。例如: ```c // 克罗地亚狂想曲部分音符序列和节拍(仅示例,非完整曲目) const struct { uint8_t note_index; uint16_t duration; // 节拍时长,单位 ms } croatian_rhapsody[] = { {0, 200}, {1, 200}, {2, 200}, // 更多音符... }; ``` ### 3. 修改 `beep` 函数 原有的 `beep` 函数可以继续使用,但需要根据新的需求进行调整,使其能够根据传入的频率和时长发声。 ```c void beep(int freq, int ms) // freq 频率 ms 声音播放时间 { int i; for(i = 0; i < ms * 1500 / freq / 2; i++) { HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7, GPIO_PIN_RESET); myDelay(freq * 2); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7, GPIO_PIN_SET); myDelay(freq * 2); } } ``` ### 4. 修改 `main` 函数 在 `main` 函数中,遍历定义好的音乐曲目,依次播放每个音符。 ```c int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); beep_init(); KeyInit(); Lcd_Init(); Lcd_Clear(YELLOW) ; // 播放克罗地亚狂想曲 for (int i = 0; i < sizeof(croatian_rhapsody) / sizeof(croatian_rhapsody[0]); i++) { uint16_t freq = note_freqs[croatian_rhapsody[i].note_index]; uint16_t duration = croatian_rhapsody[i].duration; beep(freq, duration); } while (1) { // 主循环 } } ``` ### 完整代码示例 ```c #include "main.h" #include "adc.h" #include "dma.h" #include "tim.h" #include "usart.h" #include "gpio.h" #include "bsp_lcd.h" #include "bsp_ultrasonic.h" #include "bsp_esp8266.h" #include "bsp_delay.h" #include "app_system.h" #include "key.h" // 音符频率表 const uint16_t note_freqs[] = { // C4 262, // D4 294, // E4 330, // F4 349, // G4 392, // A4 440, // B4 494, // C5 523 }; // 克罗地亚狂想曲部分音符序列和节拍(仅示例,非完整曲目) const struct { uint8_t note_index; uint16_t duration; // 节拍时长,单位 ms } croatian_rhapsody[] = { {0, 200}, {1, 200}, {2, 200}, // 更多音符... }; void myDelay(int n) { int i, j; for(i = 0; i < n; i++) { for(j = 0; j < 5; j++) { ; } } } void beep_init() { GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = GPIO_PIN_7; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); } void beep(int freq, int ms) // freq 频率 ms 声音播放时间 { int i; for(i = 0; i < ms * 1500 / freq / 2; i++) { HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7, GPIO_PIN_RESET); myDelay(freq * 2); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7, GPIO_PIN_SET); myDelay(freq * 2); } } int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); beep_init(); KeyInit(); Lcd_Init(); Lcd_Clear(YELLOW) ; // 播放克罗地亚狂想曲 for (int i = 0; i < sizeof(croatian_rhapsody) / sizeof(croatian_rhapsody[0]); i++) { uint16_t freq = note_freqs[croatian_rhapsody[i].note_index]; uint16_t duration = croatian_rhapsody[i].duration; beep(freq, duration); } while (1) { // 主循环 } } // 其他函数保持不变 ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值