精明的程序员——程序员的三个技能

别再混淆了!5分钟搞懂机器人导纳控制与阻抗控制的本质区别(附Simulink对比仿真) 本文深入解析机器人柔顺控制中的导纳控制与阻抗控制的本质区别,通过信号流方向、架构对比和应用场景三个关键视角进行详细阐述。文章还提供Simulink对比仿真案例,帮助读者快速理解两种控制策略的差异及其适用场景,特别适合机器人控制领域的研究者和工程师参考。 阅读详情

精明的程序员——程序员的三个技能

直接开始说,先说是什么:

1. 编程能力

这条浅显易懂啦。学生都知道,老师布置一个大作业,分组,分工,开始,到完成。最后总会发现这样一个作业总是由一个叫做“大腿”的同学一手包揽,从设计到coding再到测试。这种做“大腿”的能力,就是我说的编程能力啦。如何能写出好的代码,便于维护,又能适应需求的变化,可不是一件容易事。这类的书籍也不少,所有程序员都应该读上一两本。

2. 计算机系统的理解

这条是指对计算机专业知识的掌握。只会写代码不够的,这样最多能写出一个hello world。要做一个完整的系统可能会用到网络、线程、文件、数据库等等,不要都精通,但是心里都要略知一二才行。当然能够样样精通那时再好不过的了。要学哪些知识呢?我觉得考研计算机统考的四门总结的很不错:《数据结构》,《计算机组成原理》,《操作系统》,《计算机网络》。

3. 领域专家

这条是指你的看家本领,可以和计算机相关,也可以无关。例如你精通网络,可能Cisco会很喜欢你;你钻研图形学,游戏公司会青睐你;懂金融的IT人才更是赚钱。这些能力可能需要经验的积累,往往刚刚毕业的大学生比较缺乏。


稍微评价一下吧:

如果把程序员划分为2B的、普通的和文艺的三种,那么对应有以上懂一技能的,兼有二技能的,和三个技能都有的。当然他们拿的薪水是不同的。

如果只懂编程,是不够的。学的时间久了,做的项目多了,对计算机的理解会更加全面更加到位。如果你读研究生,硕士或者博士,参与并且钻研过一些领域,多媒体呀、三维呀、图像处理呀很多很多,就可以对某一个特定领域渐渐掌握。这也是我认为读研究生的必要性。

随便找一份招聘要求,这三点都会写在上面。并且面试的时候,大多数人都可以通过对一二技能的检验,面试官多数比较看重三技能。

如果想跳出程序员的级别,进入技术的管理层。那么除了者三个技能外,可能还需要一些其他的技能,例如管理能力,领导能力,沟通能力等。

那些创业成功的牛人们,首先都是技术过硬的人。这个人创立了微软,那个人建立了Google,Facebook迅速火了挣了好多钱。简单想想,都觉得他们是因为偶然想到一个好的idea,遇到一个好的时机,生在一个好的年代(常常有人说现在创新很难,所有的东西人家都做了,要是自己生在那个什么都没有的年代就好了——纯属扯淡)。这些创意的产生,源于他们扎实的技术功底以及对领域非常深刻的理解,绝非拍脑袋就能想出来的。

JavaScript - Blob / File / base64 使用场景介绍与相互转换 前言 本文首先介绍一下这三种对象使用场景,最后介绍下它们之间互转格式的解决方案。 您前端一旦涉及到文件或图片上传到服务器, 就势必离不了Blob/File/base64三种主流的类型。 Blob MDN:https://developer.mozilla.org/zh-CN/docs/Web/API/Blob 您可以观察到,像一些图片处理插件(例如有名的vue-cropper)图片裁剪插件, 它们将图片处理完毕后,都将使用blob对象返回处理好的图片,供开发者用于上传服务器。 阅读详情

相关推荐

KEIL MDK 生成bin文件实战:C51与ARM双平台配置指南

本文详细介绍了在KEIL MDK开发环境中,为C51和ARM双平台自动生成BIN文件的实战方法。针对C51平台,通过srec_cat.exe工具编写批处理脚本并集成到KEIL;针对ARM平台,则利用fromelf.exe工具直接配置。文章还提供了通用脚本方案和路径、变量、版本兼容性等常见问题的避坑指南,帮助开发者高效完成嵌入式程序部署。

weixin_29188997的博客 346

程序员需要哪些基本能力?

真的,能胜任程序员这个行业的人,在基本素养这一块能秒杀80%的其他行业就业者,因为这个行业对个人能力的要求真的太高了。

2201_75362610的博客 646

CAPL编程的催化剂——CAPLdll的实现

CANoe作为一款功能强大的总线开发及测试工具,不仅仅是因为其丰富的库函数,最重要的是其兼容了多种编程语言,可以实现灵活的开发,极大的解决了纯CAPL编程所带来的限制,如通过动态链接库(DLL)来实现复杂函数的编写,使其能够在CAPL中可以调用,下面将对DLL的实现进行分析。capldll.cpp这个文件初看相当复杂,从整体上来说,这段代码主要包含了两部分:自定义函数实现和回调函数定义,今天的主要任务是实现自定义函数,这里的函数定义与普通函数定义差不多,只是利用了CAPL的格式。在VS2017工程中打开。

车载控制器AutoSAR软件开发工程师 4648

java程序员云计算学习路线

第一阶段:大数据技术(linux+Hadoop2+Storm+Spark)Linux 1、 Linux的介绍:Linux的发展历史、Linux和Windows的对比和优势、Linux的常见版本 2、 Linux的安装:VMware Workstation虚拟软件安装过程、CentOS虚拟机安装过程 3、 Linux的常用命令:常用命令的介绍、常用命令的使用和练习 4、 VI、VIM编辑器:VI

火娃的专栏 5402

SpringCloud 2025王炸更新!GraalVM原生镜像启动速度提升90%实战

在当今云原生和Serverless架构盛行的时代,应用的启动速度已成为衡量技术栈竞争力的关键指标。传统SpringCloud应用由于依赖JVM的动态类加载、反射等机制,启动时间通常超过30秒,在Kubernetes滚动更新和函数计算场景下成为显著性能瓶颈。2025年,SpringCloud迎来里程碑式更新,通过深度集成GraalVM原生镜像技术,实现了启动速度提升90%的惊人突破,让SpringCloud应用正式进入"秒级启动"时代。

小筱在线博客 1099

矢量量化的基本原理:高效数据压缩与信息检索的关键矢量量化(Vector Quantization,简称VQ)是一种数据压缩和信

此外,在矢量量化过程中,可能会引入一定的信息损失,对一些精细特征的表示可能存在一定的误差。它通过将高维数据映射到低维码本空间中,并将相似的数据映射到相同的码本向量中,实现对数据的高效表示和存储。最重要的是,矢量量化可以用于数据的检索和分析,提供了高效的数据查询和处理手段。通过使用码本索引,我们可以高效地存储和检索大量的数据。在图像处理中,矢量量化可以用于图像压缩,将复杂的图像数据转化为较少的码字,实现图像的存储和传输。矢量量化通过将连续的高维数据分割并映射到有限的码本集合中,实现数据的离散表示和压缩。

m0_70886513的博客 1373

精明的程序员——不爱官气

精明的程序员——不爱官气 学校课题组面试的时候,老师们问我毕业后有什么打算,我说想去外企。老师说,现在的同学一个个都想去央企国企,都想当公务员,你怎么就像去外企呢。我说,外企代表先进的生产力,老师们都笑了。 前两天还和同学讨论,为什么总停电限电,中国电价却是美国的10倍;为什么中国电价是美国的10倍,国家电网每年却巨额亏损;为什么国家电网每年巨额亏损,却有无数的应届生巴不得毕业

BABY的专栏 9013

BERT + BiLSTM-CRF 处理流程

BERT是一个基于 Transformer 的预训练语言模型。与传统的语言模型不同,BERT 是双向的,即它同时利用上下文信息进行词表示学习。BERT 在大规模语料库上进行预训练,可以捕捉到深层次的语言知识和上下文关系,生成非常丰富的词向量表示。在序列标注任务中,BERT 被用作输入文本的编码器,将每个词映射为上下文相关的词嵌入(embeddings)。

AI Agent 首席体验官 2258

精明的程序员——爱学习

精明的程序员——爱学习 上一篇说到,尽可能少地去做重复的工作,因为它很难让人进步。这篇说说如何寻求进步,答案就是学习。 先说说我的大学经历吧:一二年级打基础,三年级开始做了第一个大项目,四年级就实习了。要说哪个阶段收获多,什么时间进步少,其实感觉每个阶段收获都很多。 上学的期间一定要把基础打扎实,有很多知识看似眼前没有什么实际用处,其实不然。 刚上大学的时候,觉得所

BABY的专栏 9721

从零开始:在Ubuntu 22.04上配置Isaac Gym Preview 3环境(含常见错误解决方案)

本文提供了在Ubuntu 22.04系统上从零开始配置Isaac Gym Preview 3环境的完整实战指南。内容涵盖NVIDIA驱动安装、Conda环境搭建、CUDA与PyTorch版本精准匹配、Isaac Gym核心安装与验证,并重点介绍了针对四足机器人等复杂系统的强化学习训练环境配置、常见错误解决方案及性能调优技巧,旨在帮助开发者高效部署这一高性能物理仿真平台。

weixin_29048775的博客 392

使用R语言实战:构建Logistic回归模型

Logistic回归是一种基于概率的分类算法,它用于预测离散的结果变量(也称为响应变量或因变量)。与线性回归不同,Logistic回归的输出是一个概率值,通常在0和1之间。这使得它非常适合处理二分类问题。市场营销:预测客户是否会购买某个产品。医学研究:预测疾病的发生与否。信用风险评估:预测个人申请贷款的违约风险。社会科学:预测个人对某个政策的态度。

2301_79331230的博客 1140

优秀的程序员,应选择明智但并不聪明的代码方式

作为一名拥有15年开发经验的工程师,最早让我开始“懂事儿”的,是简洁明了的一句话: 出色的代码,是表达能力更强的(expressive),而不是令人印象深刻的(impressive)。 我记得当时自己对此感到很疑惑,表达能力更强的和令人印象深刻的,他们在本质上有什么区别呢? 实际上,表达能力更强意味着清晰、明确、具体。因此,一段表达能力较好的代码需要能解决一个特定的问题。在为了写这样一段...

chen801090的博客 1948

海外购物商城源码 带即时通讯IM源码

在海外购物商城中,即时通讯IM源码可以为用户提供更便捷、高效的沟通方式,帮助解决跨国交易中的语言和文化差异问题。总之,即时通讯IM源码在海外购物商城中扮演着重要的角色,可以为用户提供更方便、高效的沟通方式,解决跨国交易中的语言和文化差异问题。(购买本专栏可免费下载栏目内所有资源不受限制,持续发布中,需要注意的是,本专栏为批量下载专用,并无法保证某款源码或者插件绝对可用,介意不要购买)实时翻译:即时通讯IM源码提供实时翻译功能,能够快速准确地翻译不同语言之间的文字、语音、视频等信息,帮助用户克服语言障碍。

很酷的站长的博客 259

精明程序员的开源宝藏库

精明程序员的开源宝藏库 去发现同类优质开源项目:https://gitcode.com/ 1、项目介绍 在浩瀚的编程世界中,找到合适的练习、笔记和解决方案是提升技能的关键。这就是Clever Programmer项目横空出世的原因。这个开源项目集成了各种编程练习、学习笔记以及项目实例,旨在帮助开发者无论新手还是老手,都能在这个平台上找到学习和提升自我的宝贵资源。 2、项目技术分析 Clever ...

gitblog_00015的博客 473

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

精明的程序员——小程大爱

精明的程序员——小程大爱 虚伪的大项目 在参加软件学院研究中心面试的时候,老师们问我有什么项目经历。记得我当时的回答是这样的: “我的项目经历主要是在Intel公司的一年实习经历,这期间主要参与了两个项目,第一个是做Meego上的多媒体框架,第二个项目是Chromium对html5视频的支持。” 老师们听后没有什么反应,但是能够感觉到他们对我的经历非常满意。一个本科生有一些实践经历就已

BABY的专栏 3万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

精明的程序员——表象之后

精明的程序员——表象之后 小郭写程序,写了几十个文件的源代码。当他开始测试的时候,发现运行的结果不正确,于是他踏上了艰难的debug之路。他想:”一定是哪个地方有问题“。但是,他一遍又一遍审查着每一个源文件,每一个函数,都不能找出问题。在调了两天之后,终于找到了一个bug。”原来是这里写错了!“小郭非常兴奋,因为艰难的debug终于获得了汇报,找到了问题。他激动地改正了错误,编译,运行,

BABY的专栏 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

精明的程序员——封装了什么

精明的程序员——封装了什么 我一向对JAVA开发有偏见,总是看不惯一些老师带着学生们去写各种各样的JAVA程序。前些天又和一个比较喜欢JAVA的朋友争论到底是JAVA好还是C好,争来争取也没有一个结论。最多不过是些“各有千秋”之类的中庸之词。 有人说C效率高,那么就有人反驳说,JAVA开发快。有人说C可以操作与硬件平台相关的功能,JAVA很难做到;那么倾向JAVA的人就会说,同一段JAVA代码

BABY的专栏 2947

精明的程序员——重复的工作

精明的程序员——重复的工作 什么样的工作是一份好工作? 虽然还在读书,距离工作还很遥远,但是经常会思考这个问题。 偶然间看到一个视频,是白岩松在江西的一所大学的演讲。白谈到一个观点,大概内容是这样的: 一个清洁工,一个比尔盖茨,为什么这两个人的工作挣的钱差别就那么多?并非人与人之间的地位就有差别,工作也没有高低之分。根本原因在于你要在一个领域有自己的不可替代性。说白了,就是做同一件事,没有

u012865796的专栏 927

精明的程序员——软件这条路我在往哪走

精明的程序员——软件这条路我在往哪走 我小就被大人评价为优秀。因为做同样一件事情,总会比别的小孩做的好,学的快。和小朋友一起画画,玩个气枪,或者学骑自行车,我总是那个最优秀的。我觉得是因为我的好胜心强,不论做什么事,我心里总会想着,我不能比别人做的差。 长大了,上学,成绩优秀。 高中的时候就开始迷上计算机。当时跟着每一期的《黑客x档案》,学着上面每一篇文章,攻击网站,破解软件,学习种植木马上

BABY的专栏 8810

精明的程序员——不要浪费那些珍贵的题目

精明的程序员——不要浪费那些珍贵的题目 记得临近高考的时候,我们都在拼命挣扎在题海中。当时,老班给我们说了这样一段话,我至今都记忆犹新。 “题目看似很多,永远做不完似的,但是其实好的题目非常少。最珍贵的题目,就是近几年的高考真题,那每一道题都是经过千锤百炼出来的,是其他模拟题无法比拟的。你们要做这些真题,就要认真做。不要像做练习题似的,做一道看一下答案,做错了改正。这样做简直是在浪费题目。

BABY的专栏 8481

精明的程序员——节奏大师乐谱破解

节奏大师乐谱破解

BABY的专栏 6万+
上一篇: 精明的程序员——重复的工作
下一篇: 和小导师发生了一些争执
BABY
博客等级 码龄18年 480粉丝 46原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值