不要听信那些程序员不需要学英语的毒鸡汤了

本文讲述了程序员学习英语的重要性。即便在有翻译工具的帮助下,直接阅读英文原版资料可以更准确地理解技术内容,避免翻译的误差。学习英语能够帮助程序员更快地获取最新的技术知识,避免被翻译滞后所限制,并提高在技术论坛交流的效率,减少被误导的可能性。此外,良好的英语能力还能提升个人技术水平和专业形象。

每天早上七点三十,准时推送干货

前天的时候,也就是国庆刚刚过的几天的时候,一个之前在学校的小学弟在问阿粉,说现在想入行当程序员,需要准备什么样子的知识,于是阿粉就给他提出了一些意见,比如先掌握好基础,然后代码规范,以及之后的框架什么的,这时候,小学弟问了一句,对英语的要求高么?阿粉说英语不太好的话,问题不太大,但是还是要学习英语的。

程序员到底有没有必要学习英语

阿粉的建议是一定要学习,为什么要学习英语呢?

众所周知,现在大家手里面都有很多的关于编程类的书籍,就比如阿粉,把所有的书籍都进行了分类,但是,这些书籍无一例外,全部都是中文著作,但是却全部都是由英文翻译过来的书籍,比如说:

阿粉就不再进行寻找了,反正大部分的书籍,都是国外著作翻译过来的,那么问题来了,你看的书的内容岂不就是取决于翻译人的水平,他的水平的最高程度,就是你读书的最高程度。

也就是所谓的初级阶段,我们学习编程语言的基础知识,这书就起到了非常重要的作用,由于翻译的老大哥们已经把这些编程知识都翻译成了中文,我们可以通过这些书籍进行学习,让我们这些英语不好的人在学习时没有任何语言障碍的学习。

而在这时候,有些人就会告诉你学英文没必要,现在你开发,百度都能给你解决,再不济,百度翻译不也是可以用的么?

别听信他们欺骗你的谎言

而到了之后的中级程序员的时候,就是你自己有了知识储备,也能够在百度上解决自己百分之八十以上问题的时候,如果感到满足的话,就真的是井底之蛙了,为什么这么说,因为在阿粉从事了这么几年开发中,也遇到过一些人,他们秉承的原则就是,英文重要不重要的,也就那回事,能干活就行。

于是出现了下面的这种情况:

看到上面的两个图了么,flowpern_bound 在百度翻译上面,翻译出来是飞车,但是你再百度翻译一下飞车,就莫名的变成了Flying car ,而最经典的就是在代码的方法名命名的时候。

很多人在命名的时候,也都是直接想起来什么就写什么,就像上图的Confirmation list 一样,但是很多人写着写着就变成了 ConfirmList了,这倒是也没错,但是实际上和之前百度的就不太搭边了不是么?

而他们还美名其曰的告诉你,不用学英语,你在开发中用的根本就不多,知道咱们开发用的 String,Request,Int,Servlet,这些就够用了,而你如果真的听了他们的话,那么只能说兄弟,你太年轻了。

他们都是在忽悠你安逸的生活,虽然英语在我们看来确实不是很简单,至少对阿粉来说,是这个样子的,但是阿粉依旧在坚持着每天记一点点单词,然后语法什么的,虽然不是特别的给力,但是有一些英文的简单的文章也都是大致能看明白是什么意思的。

学会英文都有哪些好处

1. 你能比其他人掌握到更早的知识

为什么这么说,因为有些我们没有接触过的知识,和之前从来没有遇到过的问题,基本上都是国外的,或者是国外的大牛发起的,这里不要黑阿粉哈,爱国心很满,但是咱们的佩服一下,毕竟事实上也确实是这个样子。

相信很多的程序员们都掌握了一定的翻墙技巧,而那些网站很多都是纯英文版本的,阿粉在最开始的时候也是只能Google的一键翻译,有些东西确实还行,但是有些东西,也没法看,和自己理解的完全不太一样。

而你这时候就体现出真正的优势了,当你的英文水平还凑活的时候,你直接就能在网站上获取到你需要的内容,而当你的英文不给力的时候,那么你只能说是看别人翻译过来的书籍,而你能学到的,也是从翻译人手中学到的,而不是从著作本身的作者身上学到的,在这里,也感谢一下广大的翻译工作者,你们辛苦了。

2. 防止被掐架帖直接阻碍你的学习水平

说实话,阿粉这个见得比较多,就比如之前 CodeProject, CodeGuru,都是比较好的网站,还有大家最常用的 stackoverflow,就说这些网站,大部分不都是英文的帖子社区。

而看一下国内的社区,不排除有很多技术干货的存在,但是还有很大一部分的帖子是在 battle 这门技术是不是好,哪个技术怎么怎么不好,这技术不都是使用最合适的,哪有说最好的,只有最适合的呀。

3. 还有最庸俗的一点,装X

为什么这么说的,阿粉一直都觉得,你英文如果给点了的话,有助于你装一波杯,毕竟这也是除了母语之外的语言,你能看懂英文的书籍,和其他人交流的时候是不是也有种爽到飞起的感觉。

< END >

如果大家喜欢我们的文章,欢迎大家转发,点击在看让更多的人看到。也欢迎大家热爱技术和学习的朋友加入的我们的知识星球当中,我们共同成长,进步。

蓝牙串口通信程序的开发涉及多个层面,包括硬件连接、协议选择、软件接口设计以及数据传输逻辑等。以下是一个系统的开发指南,结合同平台和工具进行说明。 ### 3.1 硬件基础与通信协议 蓝牙模块通常支持串口通信协议(SPP, Serial Port Profile),该协议允许蓝牙设备模拟传统的串口通信行为。开发者在选型时需确认蓝牙模块是否支持SPP,并了解其电气接口标准,如TTL电平或RS-232[^1]。 常见的蓝牙模块有HC-05、HC-06、ESP32等,它们均支持通过UART与主控设备(如单片机、树莓派、PC)进行通信。串口通信的基本参数包括波特率、数据位、停止位和校验位,必须确保两端配置一致才能正常通信[^1]。 ### 3.2 跨平台开发库与框架 #### Android 平台 对于Android平台,`flutter_bluetooth_serial` 是一个常用的库,适用于使用Flutter框架开发的应用。它封装了蓝牙适配器的状态监听、设备发现、配对及连接功能,并通过流式接口处理数据收发。例如: ```dart import 'package:flutter_bluetooth_serial/flutter_bluetooth_serial.dart'; void connectToDevice(String address) async { BluetoothConnection connection = await BluetoothConnection.toAddress(address); connection.input.listen((data) { print('Received: $data'); }); } ``` 此库支持经典蓝牙(Classic Bluetooth)并通过RFCOMM协议进行通信[^2]。 #### Node.js 平台 在Node.js环境中,可以使用 `node-bluetooth` 库实现蓝牙串口通信。该项目提供了一套面向对象的API,用于扫描设备、建立连接、发送和接收数据。安装方式如下: ```bash npm install bluetooth ``` 代码示例: ```javascript const BluetoothSerialPort = require('bluetooth-serial-port'); let btSerial = new BluetoothSerialPort(); btSerial.findSerialPortChannel('XX:XX:XX:XX:XX:XX', function(channel) { btSerial.connect('XX:XX:XX:XX:XX:XX', channel, function() { btSerial.write(new Buffer('Hello World', 'utf-8'), function(err, bytesWritten) { if (err) console.error(err); }); }, function(err) { console.error(err); }); }); ``` 该项目底层依赖于操作系统提供的蓝牙栈(如BlueZ在Linux上)[^3]。 #### 原生 Android 开发 若采用原生Java/Kotlin开发,可参考蓝牙串口终端开源项目中的结构,使用Android Bluetooth API实现SPP通信。关键步骤包括开启蓝牙、扫描设备、创建RFCOMM socket并进行读写操作[^4]。 ### 3.3 数据通信与调试技巧 在通信过程中,建议使用串口调试助手(如蓝牙串口终端应用)进行测试,以验证模块是否正常工作。此外,可通过日志记录和数据分析工具(如Wireshark)抓包分析蓝牙通信流量,排查连接失败、数据丢包等问题[^1]。 对于稳定性问题,应注意以下几点: - 检查蓝牙配对状态和权限设置; - 设置合理的超时机制和重连策略; - 使用缓冲区管理大数据量传输; - 在断开连接后释放资源,避免内存泄漏。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值