读【36岁IT老人再次随笔】的读后感,你会哪些计算机语言?

中图法第五版SQL,支持树形结构可直接导入使用 基于第五版中图法官方数据收集整理,效果图如下: 阅读详情

论坛首页一篇:社区“揭穿最大谎言”事件  , 我看了,也顺便看了里面另一位仁兄的【36岁IT老人再次随笔 】
其中关键的地方就是一个例子:你会哪些计算机语言?


这个问题很有意思,确实如网友回复里说到的,每个人理解不同,答案不同。IT老人的答案虽然偏颇,但面试临场也许真想不出八面玲珑的答案也是可以理解的。不过其解释我却非常赞同,那就是思想是一样的。


一个系统,在确定需求之后,是进行整体的设计,然后是详细设计,然后才是编码,也就是说,一个设计好的系统,可以用不同的语言来实现,无论是使用java还是.net还是C++,甚至汇编。 选择哪个语言完全看开发团队的熟悉程度,因为一般来说客户更关心的是业务的实现而不是业务的实现细节。只要我们的系统能满足用户,那么用户是不关心用什么语言开发的,在这一点上,各个语言确实只是一个工具,决不能说这个语言就比那个语言好。


我在几个较大的项目开发公司接触过,他们的开发人员有2种,第一种是专一于某个语言,一般是负责产品开发,另一类是精于某个语言,但其他语言也可以胜任,一般负责项目开发。在实际的项目开发中,由于java,php,c++等跨平台的特性,可能会被大家优先选择。而.NET由于其特有的方便快捷特征(至少不用象java那样新东西太多了,让许多新人花了眼),拥有者大量的应用系统。


回到正题:我会哪些编程语言呢?我更愿意从业务的角度来回答。

1 重点面向 C/S的编程语言

比如 delphi, PB, C++, VB 等

2 重点面向 B/S的变成语言

比如 .net java php asp ruby 等

3 面向底层、嵌入式和效率优先的实时系统的开发语言

这个当然是 c的天下了


注意:这个分类不代表其不能做别的,比如.net可以同时做C/S和B/S开发,但大家选择.net更多的是用于 B/S开发。

实际上许多系统是混合开发的。比如核心服务系统需要高速性能,那么会使用C,或者汇编语言进行部分或者全部开发,而系统与用户交互的部分则会采用C/S或者B/S开发语言来做客户端。


无论你采用哪个语言开发,都是在你已经对系统有了了解,知道其实现机制,然后在不同的语言中【选择】更适合这个系统的语言。


作为程序员,从1个语言转到另一个语言,确实需要点时间,但其学习曲线却是越来越平滑,我个人在大学里也是汇编,C语言,也自己用turbo C编写过图形化界面,然后就是学习了php语言,这个由于有C的基础,学习起来真是太容易了。 然后是java, 同样由于C/C++的基础,很快入门并投入实战,不过变成语言的类库真的需要大量的时间去掌握,毕竟熟悉自己手里的武器才能让他发挥最大的效率。这个时间真的可能会很长。象JDK加上大量的开源框架,这种东西如果没用到,可能根本没有去学,也导致以后可能用到了却根本不知道有这个东西的【尴尬】局面。我就经常从别人的代码里看到了许多早就存在的【新东西】。


技术服务于业务,我坚定的观点。如果一个问题你不知道如何回答,可以考虑从用户的角度分析一下看看,也许有另一番天地。

泰克示波器TDS210改装便携示波器 泰克示波器TDS210改装编写示波器 阅读详情

相关推荐

打造你自己的小程序容器 —— 一套能装得下整个未来的跨端技术!

摘要: 本文介绍了一种基于Capacitor框架开发的轻量级“小程序容器”解决方案——LapDrop。通过模拟微信小程序的运行逻辑(动态加载、原生能力调用、沙盒环境),LapDrop允许开发者自主构建跨平台(iOS/Android/Web)的小程序生态。其核心利用Capacitor的插件桥接机制,实现JS与原生功能的无缝调用,并支持浏览器调试与原生环境一致化。优势包括插件化架构、状态隔离、热更新及开放权限控制,适用于企业级模块化应用或开发者工具。未来计划扩展生命周期管理、远程加载等功能,目标成为开源的小程序

CangYuChenAi的博客 978

【C语言学习笔记】《C程序设计语言》读后感

Warning: 为了避免非零基础人群感到身体不适、头晕恶心、易怒及粗口,请不要查看以下内容。 文章目录前言读书感悟总结 前言 截至目前为止,我已经“抄”完了10篇《C程序设计语言》 读书笔记。刚好升到了博客2级,这也是我第一次在优快云发帖子记录读书感悟。与其说是感悟…不如说是照抄原文。由于这是我第一本完整阅读的计算机书,也是我第一次使用优快云,在措辞上有些不知所措。 我本来是打算写几篇浓缩度...

返璞归真的博客 4787

Android13系统设置第三方app为设备所有者

DevicePolicyManagerService.java文件所在目录是frameworks/base,记得将包类名换成自己app的。2. 将拷贝到系统分区下的两个xml文件继续通过init.rc服务拷贝到data/system/目录下并修改权限。1. 拷贝设备所有者和设备管理器两个对应的xml文件到系统分区。

wzh048503的博客 2509

《编程语言的设计与实现》读后感

《编程语言的设计与实现》读后感 前几天在网上找ruby的书,没有新书,再找lisp也没新书,再找matz的书,居然发现他写了新书,立即下手。到手后,立马阅读,感觉作者居然介绍新的语言,steem,而没有讲ruby,真是有些失望。但前几章,基本上讲了ruby,让我失望中多少有了些高兴。 因为我有段时间真想读一种编程语言的源码,当时呢,找sed的源码,一个getopt就把我弄晕了。再找gawk的源码,...

woshiyilitongdouzi的博客 1020

Clion编译stm32cube初始化工程时non constant or forward reference address expression for section .ARM.extab报错

相信应该有同学在看了稚晖君关于clion开发stm32的文章之后也想在自己PC上实现“优雅の嵌入式开发”遇到和我类似的问题。他的文章是22年写的,我个人猜测应当是版本更新导致的不适配。意思就是说 READONLY 只能在gcc11以后的版本中使用,gcc10及以前的版本将无法正确识别,也就有如下错误。或者就可以将gcc升级至最新的版本。记得在clion工具链中修改c,cpp编译器的位置。可以将文本括号中的 READONLY 全部删除。当时由于没有注意到这行注释导致在这里卡了好久。

2301_77256849的博客 2513

COMSOL多物理场仿真:瓷绝缘子电热耦合建模与优化策略

本文详细介绍了使用COMSOL Multiphysics进行瓷绝缘子电热耦合仿真的完整流程与优化策略。文章阐述了电热耦合效应的工程意义,并逐步讲解了从几何建模、材料定义、物理场设置到边界条件与网格划分的关键步骤。重点分析了如何通过焦耳热耦合实现电场与温度场的双向交互,以及如何利用仿真结果进行参数化优化和瞬态故障模拟,为提升电力设备可靠性提供有效的数字化设计工具。

n8m7b6v5c4的博客 884

一位36岁程序员的困惑(转)

今天特郁闷,经理找我谈话,我被炒了。以前自信的感觉完全不在,取而代之的是职业生涯的困惑,不知道向何处去。   想当初,为了学习更 多知识的我到了一家软件公司,后来一直没有离开软件行业。而我的好哥们毕业后直接进入税务局,银行,以为他们只是浪费青春,学不到什么知识,可是他们却顺 势识时务、会搞关系,擅长腐败而成功转型,都成副处或处长了。上次同学聚会上,虽然大家比较客气友好,但从内心来讲,我觉得自

孤独小剑的专栏 2万+

Coze HTTP请求节点实战:5分钟搞定天气API对接(含动态参数技巧)

本文通过一个天气预报API对接的实战案例,详细讲解了如何在Coze平台使用HTTP请求节点实现外部数据交互。文章重点演示了动态参数传递、JSON响应解析与错误处理等核心技巧,帮助开发者在5分钟内快速构建稳定可靠的智能体外部服务调用能力。

weixin_29233333的博客 677

计算机书籍-老年人编程自学书籍

书名:DK编程真好玩:6岁开始学Scratch 作者:[英] 乔恩·伍德科克 出版社:南海出版公司 出版时间:2017年08月

自然语言处理 380

【面试经验】大疆笔试-计算机视觉算法B卷

3、a=np.random.randn(3,3) b=np.random.randn(3,1) ,那么c=a*b的维度应该是:*是元素乘法或者torch.mul,@才是矩阵乘法或者torch.matmul,不会触发广播机制;8、将分辨率降低一半时,精标定内参(fx、fy、cx、cy、k1、k2、k3)焦距、光心、畸变系数将分别变成(fx、fy、cx/2、cy/2、k1、k2、k3),只能搜到光心变成一半,畸变系数不变。12、KLT算法在频闪光源、重复纹理、高速机动、环境照度低的情况下效果显著下降。

litterfinger的博客 1448

【AN7581】AN7581 SDK编译环境搭建操作说明

安装编译需要的工具包。

wgl307293845的博客 338

“全球最高龄程序员”83岁老奶奶的励志编程路!!

若宫正子出生于东京,目前居住在神奈川县藤泽市,是非营利宽带学校协会理事。据公开报道,若宫正子高中学历,曾就职于三菱银行,60岁退休,在这之前,从来没有接触过电脑,退休后在...

程序员之家 1759

052、联发科Imagiq HyperEngine架构适配:天玑9000/9200的ISP多核并行调度与Tuning Toolkit调优案例

摘要: 项目组在适配联发科天玑9200的Imagiq 890 ISP架构时,遇到多摄预览功耗过高、帧率不稳等问题。通过分析多核调度机制,调整辅核QoS通道、优化AI-ISP协同模式(采用FREERUN+运动补偿),并利用Tuning Toolkit的Pipeline Viewer动态分配负载,最终降低功耗30mA、提升画质。关键经验包括:避免多核带宽冲突、合理配置动态时钟策略,以及统一校准参数版本管理。天玑9000/9200的HyperEngine架构需优先理解多核协同逻辑,再针对性调优,否则易引发场景兼容

zzfmlxs的博客 38

微软技术日报 11-09:.NET 8 与 9 明日同时停止支持,注册表编辑器出了 WinUI 3 版

今天这四条消息的共同点是收口。.NET 8 和 9 的支持期到点,注册表编辑器的新界面只放在仓库里给人看,GitHub 把一类危险触发器按住默认,微软在安全报告里把防线从地址黑名单挪到行为。收口并不等于关门。.NET 10 还在支持期里,被按住的触发器可以用策略按文件放回来,实验室里的样例随时可能变成产品。区别在于这些动作要有人签字,不再是默认开着。如果今天只做一件事,去看一眼构建机上的 .NET 版本。明天之后,8 和 9 的漏洞补丁不会再来了。

海盗Sharp的博客 383

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

深度学习工具包 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")

微软技术周报 11-02~11-09:VS Code 混装 Claude 与 Codex、EF Core 11 静默改行为、.NET 11 倒计时

11 月 6 日,Power Platform 通过消息中心通知管理员,Copilot Studio、Power Automate 和 Power Apps 里所有跑在 Anthropic Claude、xAI Grok 以及旧版 GPT 上的 prompt,12 月 2 日自动迁移到 GPT-6 系列,档位价格不变,模型选择收窄到一条产品线。效果是这样的:让 Claude 评审一个 Copilot chat 写出的方案,或者把同样的任务交给 Codex,两边并排跑在同一个会话里。更要紧的是下周的时间线。

海盗Sharp的博客 972

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

.NET 11 - 尝试一下Blazor中Virtualize组件的Scroll新特性

2026年11月10日,微软发布了.NET 11正式版!这是一个STS版本, 微软提供两年支持。同时.NET 8 和 .NET 9 在 2026 年11月10日开始结束支持。.NET11处于Release Candidate 3阶段的时候,只支持在Visual Studio 2026 Insiders 和 Visual Studio Code(安装了C# Dev Kit.NET extension)中创建.NET11项目。

limingdinghao的博客 165

精雕软件(JDpaint) 5.5 绿色版

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

一款基于 .NET 开源、免费的数据库自治诊断平台

DBPilot。它解决的是 DBA 日常工作中最耗时的痛点:性能趋势分析、Top SQL 定位、阻塞与死锁排查,原本散落在多个工具和脚本里的活,现在一个 Web 控制台全搞定。DBPilot 是一个自托管的数据库自治诊断平台。它持续采集实例的性能数据,在同一个 Web 控制台里完成日常 DBA 工作流:性能趋势与 AAS 负载拆解、Top SQL、执行计划变更跟踪、缺失索引建议、索引使用与碎片、阻塞分析、死锁分析、慢日志。

专注于C#/.NET/.NET Core学习、工作、面试干货和实战教程分享。这里聚焦了大量的C#/.NET/.NET Core优质文章、开源项目、实用工具和学习、工作、面试心得。 188

Keycloak.Admin.Sdk 26.8.1-preview.3 发布:从管理 API 到应用协议的 .NET 10 SDK

如果你的项目正在使用 Keycloak 26.8.1,欢迎通过 NuGet 体验 **26.8.1-preview.3**,也欢迎提交具体接口、协议或运行环境下的使用反馈。

ChaITSimpleLove的博客 357
上一篇: MySQL查询所有供应商和其任意一个产品 - Group by的使用
下一篇: 昨天晚上到厦门了
老紫竹
博客等级 码龄19年 1万+粉丝 1252原创
评论 11
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值