My Story, In Brief

本文作者分享了自己成为前端开发者的经历,并提供了十个实用建议,包括深入学习设计、JavaScript及框架,参与开源项目,发布个人代码,撰写博客,构建有趣项目等,旨在帮助读者成长为JavaScript领域的专家。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上周我写了一篇相当漫长的文章,感叹要找到一个有天分的前端开发人员是相当具有挑战性的。这篇文章引起了一些评论和电子邮件形式的讨论,我不只是想要在这里抱怨这种客观事实而是想要对该现状发表一下个人建议;以下是我对于如何成为一个JavaScript高手的一些建议。

 

My Story, In Brief


 

关于我如何成为一个javascirpt开发的经历并不有趣,但是如果你一定要问我,以下是一些关键亮点:

1、我在高中和大学学习一些音乐,摄影和绘画艺术,虽然这不是我的专业(这是爵士吉他)。

2、我学习html要归宿到马赛克仍然还在使用的时期,每次浏览器的更新到能学到一些新的web技能。

3、我参加了一个活动(当时HTML很热门)在1997年,我学到了一点编程(JAVA)。我不是很在行。我用java建了一个非常简单的CMS。

4、1999年,我开发了一个关于音乐的站点(http://www.epitonic.com),这是我设计和建造的。一个非常小的开发团队建立了一个更强大的CMS。还有很多的JavaScript。

5、2003年,我加入CNET担任产品经理。我没有写很多代码,但每当我们需要一些JavaScript,我卷起衣袖投入到javascript,无意中成了“JavaScript开发者”,并把我的研究分享到博客(clientside.cnet.com)。

6、起初我的工作重点是prototype.js、Moo.fx。

7、Mootools深深的吸引了我,我写了两篇对于Mooltools的研究文章。

8、一边做产品经理,一边做javascript开发。

9、2007年底离开CNET于并启动了Iminta.com。2008年年底经融危机,我开始考虑找工作,发现了Cloudera(或者,他们找到我)。

我的职业生涯是一个奇怪的过山车轨道,对我来说javascript和web开发始终是一个打到目的的手段。我喜欢创建有意思的产品。我不是很关心是否自己去写一些javascript或服务器端代码。

 

Enough About Me, Let’s Talk About Becoming a JavaScript Ninja


 

以上关于我的经历只是想要告诉你们我并不能正确的告诉你们如何能成为一个前端开发工程师,每个人都有自己的一段经历,不像我的。我在CNET花了一年的时间去系统学习javascript和javascript框架,其实你可以用其他方法花更少的时间来学习到这个,以下就是我的一些个人建议:

1、Study design and designers. 并不要求你要具备一个设计师的技能,只是建议你用设计师的角度去观察,当你浏览网页的时候,尝试去分辨哪些1体验好,哪些页面好看。我经常问面试者他们欣赏哪些站点以及为什么。

2、Study JavaScript. 我的意思是真正的专研。观看所有YUI theater上Crockford的视频。你也可以观看这里的其他视频,我并不是100%的赞同所有他们说的,但是对于学习来说是很有好处的。阅读Crockford的《JavaScript: The Good Parts》。再次重申我并不是完全同意所有这本书里面讲的,但是可以从这本书中学习到认真扎实的语言基础。

3、Study JavaScript Frameworks. 注意并不是一个框架,而是多个。我为Mooltools写了原始的文档,这个是我认为在我的学习经历中最为重要的一件事。为了写成文档,我阅读了Mooltools源码并尝试去理解为什么它做了什么以及为什么要那样做。从中我学了很多,但是学习都是循序渐进,从没有任何一件事情让我一下进一大步的。当我创建jqueryvsmootools.com的时候我又做了这个事情,这次的对象是jQuery。为了弄明白它,我阅读了它所有的源代码。同样还有Dojo。从这些经历中我学习到了这些框架作者的一些编码风格。不要只是会用jQuery或者Mootools。你要尝试去了解他们,了解他们的差异、特点以及有意思的地方。不要停止这些知道你真正了解了这些框架都在做了些什么。不要犹豫去与框架作者交流你的一些看法,他们会很乐意的。

4、Get involved with a framework. 对我来说第二重要的事情就是参与了Mooltools项目。参与一个开源项目对你的简历来说可谓会增色不少。只要你肯花时间,现有的一些框架还存在着大量的bug,尝试去解决一些!去写一些测试用例!写一个关于你如何使用这些框架的博客。尝试去做这些事情,我保证你将会得到很多有趣的offer。

5、Release some of your own code. 这点很重要!如果你在github上没有代码,你将会失去很多机会。你可以让你的潜在雇主了解到你的代码能力。

6、Blog about it. 尝试记下你在博客中所学到,3年时间可以积累一笔巨大的知识财富。你在博客中提出了一个问题,可能就会吸引一大批对于该问题有兴趣的开发者。无意之中你就可能成为该领域的专家。如果你持续的发表一些你在学习什么,你在做什么,你会发现有一天会有人自动找上你。这是一个耗时的工作,但是这是一件很有意义的工作。

7、Build something interesting. 为了创建一个php的图片库,我花了一两个月的时间去学习php和smarty,因为项目原因,我自己创建了很多借口去学习一些新技术。强迫自己去做一些项目,从来没有比在这个过程中学习新技能来得更快的了。不要过于依赖你现在掌握的技能,永远要去寻找用新技术解决问题的机会。

8、Join a startup. 我知道这是棘手的。(貌似不适合国情,掠过)

9、Take the time to learn why solutions work. 利用google去寻找问题的解决办法的同时尝试去理解问题的真正原因或者说是深层次的原因是什么。

10、Be curious, and fight off laziness. 寻找利用新技术解决旧有问题的机会,认识这些机会并把握住这些机会,没有什么比拿着一份工资并且learn to work来得划算的了。与你的同事交流技术问题,他有你所不知道的技术,你有他不知道的技术,互相学习。也不要只是停留在javascript的小领域之中。

 

我还可以讲很多方面,但是前提必须是你想要成为一个前端开发者并且乐于其中。

基于数据挖掘的音乐推荐系统设计与实现 需要一个代码说明,不需要论文 采用python语言,django框架,mysql数据库开发 编程环境:pycharm,mysql8.0 系统分为前台+后台模式开发 网站前台: 用户注册, 登录 搜索音乐,音乐欣赏(可以在线进行播放) 用户登陆时选择相关感兴趣的音乐风格 音乐收藏 音乐推荐算法:(重点) 本课题需要大量用户行为(如播放记录、收藏列表)、音乐特征(如音频特征、歌曲元数据)等数据 (1)根据用户之间相似性或关联性,给一个用户推荐与其相似或有关联的其他用户所感兴趣的音乐; (2)根据音乐之间的相似性或关联性,给一个用户推荐与其感兴趣的音乐相似或有关联的其他音乐。 基于用户的推荐和基于物品的推荐 其中基于用户的推荐是基于用户的相似度找出相似相似用户,然后向目标用户推荐其相似用户喜欢的东西(和你类似的人也喜欢**东西); 而基于物品的推荐是基于物品的相似度找出相似的物品做推荐(喜欢该音乐的人还喜欢了**音乐); 管理员 管理员信息管理 注册用户管理,审核 音乐爬虫(爬虫方式爬取网站音乐数据) 音乐信息管理(上传歌曲MP3,以便前台播放) 音乐收藏管理 用户 用户资料修改 我的音乐收藏 完整前后端源码,部署后可正常运行! 环境说明 开发语言:python后端 python版本:3.7 数据库:mysql 5.7+ 数据库工具:Navicat11+ 开发软件:pycharm
MPU6050是一款广泛应用在无人机、机器人和运动设备中的六轴姿态传感器,它集成了三轴陀螺仪和三轴加速度计。这款传感器能够实时监测并提供设备的角速度和线性加速度数据,对于理解物体的动态运动状态至关重要。在Arduino平台上,通过特定的库文件可以方便地与MPU6050进行通信,获取并解析传感器数据。 `MPU6050.cpp`和`MPU6050.h`是Arduino库的关键组成部分。`MPU6050.h`是头文件,包含了定义传感器接口和函数声明。它定义了类`MPU6050`,该类包含了初始化传感器、读取数据等方法。例如,`begin()`函数用于设置传感器的工作模式和I2C地址,`getAcceleration()`和`getGyroscope()`则分别用于获取加速度和角速度数据。 在Arduino项目中,首先需要包含`MPU6050.h`头文件,然后创建`MPU6050`对象,并调用`begin()`函数初始化传感器。之后,可以通过循环调用`getAcceleration()`和`getGyroscope()`来不断更新传感器读数。为了处理这些原始数据,通常还需要进行校准和滤波,以消除噪声和漂移。 I2C通信协议是MPU6050与Arduino交互的基础,它是一种低引脚数的串行通信协议,允许多个设备共享一对数据线。Arduino板上的Wire库提供了I2C通信的底层支持,使得用户无需深入了解通信细节,就能方便地与MPU6050交互。 MPU6050传感器的数据包括加速度(X、Y、Z轴)和角速度(同样为X、Y、Z轴)。加速度数据可以用来计算物体的静态位置和动态运动,而角速度数据则能反映物体转动的速度。结合这两个数据,可以进一步计算出物体的姿态(如角度和角速度变化)。 在嵌入式开发领域,特别是使用STM32微控制器时,也可以找到类似的库来驱动MPU6050。STM32通常具有更强大的处理能力和更多的GPIO口,可以实现更复杂的控制算法。然而,基本的传感器操作流程和数据处理原理与Arduino平台相似。 在实际应用中,除了基本的传感器读取,还可能涉及到温度补偿、低功耗模式设置、DMP(数字运动处理器)功能的利用等高级特性。DMP可以帮助处理传感器数据,实现更高级的运动估计,减轻主控制器的计算负担。 MPU6050是一个强大的六轴传感器,广泛应用于各种需要实时运动追踪的项目中。通过 Arduino 或 STM32 的库文件,开发者可以轻松地与传感器交互,获取并处理数据,实现各种创新应用。博客和其他开源资源是学习和解决问题的重要途径,通过这些资源,开发者可以获得关于MPU6050的详细信息和实践指南
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值