From owner-freebsd-questions@freebsd.org Fri Jun 5 22:27:21 2020 Return-Path: Delivered-To: freebsd-questions@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7EF76339571 for ; Fri, 5 Jun 2020 22:27:21 +0000 (UTC) (envelope-from dpchrist@holgerdanske.com) Received: from holgerdanske.com (holgerdanske.com [184.105.128.27]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "holgerdanske.com", Issuer "holgerdanske.com" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 49dy201k22z42Mb for ; Fri, 5 Jun 2020 22:27:20 +0000 (UTC) (envelope-from dpchrist@holgerdanske.com) Received: from 99.100.19.101 ([99.100.19.101]) by holgerdanske.com with ESMTPSA (TLS_AES_128_GCM_SHA256:TLSv1.3:Kx=any:Au=any:Enc=AESGCM(128):Mac=AEAD) (SMTP-AUTH username dpchrist@holgerdanske.com, mechanism PLAIN) for ; Fri, 5 Jun 2020 15:27:15 -0700 Subject: Re: Minimal skills To: freebsd-questions@freebsd.org References: <20200604074134.89eb6518.freebsd@edvax.de> <20200604005859.ca438474.freebsd@edvax.de> <20200604020051.0c02472d.freebsd@edvax.de> <20200604074134.89eb6518.freebsd@edvax.de> From: David Christensen Message-ID: <51a4b668-ca83-192d-4453-d65087dbcb93@holgerdanske.com> Date: Fri, 5 Jun 2020 15:27:14 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 49dy201k22z42Mb X-Spamd-Bar: ++ Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of dpchrist@holgerdanske.com has no SPF policy when checking 184.105.128.27) smtp.mailfrom=dpchrist@holgerdanske.com X-Spamd-Result: default: False [2.56 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_SPAM_SHORT(0.51)[0.506]; MIME_GOOD(-0.10)[text/plain]; TO_DN_NONE(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-questions@freebsd.org]; AUTH_NA(1.00)[]; RCPT_COUNT_ONE(0.00)[1]; NEURAL_SPAM_MEDIUM(0.69)[0.690]; DMARC_NA(0.00)[holgerdanske.com]; NEURAL_SPAM_LONG(0.46)[0.465]; RCVD_IN_DNSWL_NONE(0.00)[184.105.128.27:from]; R_SPF_NA(0.00)[no SPF record]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:6939, ipnet:184.104.0.0/15, country:US]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[] X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Jun 2020 22:27:21 -0000 On 2020-06-04 19:59, Kurt Hackenberg wrote: > Yes, [K&R2e] is over 30 years old. C itself, and Unix, were invented > together about 1970. (FreeBSD is a version of Unix; Linux is a > different version of Unix.) > > That is a classic book about C, and still valuable, but no longer > complete. There were some additions to the language in 1999, and a > couple smaller changes since. > > C is useful to know around Unix systems, and there's a lot of > existing software in the world written in C, but it's not used all > that much for new projects. I say this even though I've used C and > Unix for a long time. On 2020-06-04 21:07, Brandon helsley wrote: > Then you are recommending new learning material for C? Is it C or C+ > or C++ that I'm to be benefited to learn when working with freebsd? On 2020-06-05 09:12, Brandon helsley wrote: > Ruby, C, and python are my best bet for learning programming? Do C > and Ruby have a GUI like python does? I view C as the lowest-common-denominator, de facto standard computer programming language for imperative and structured programming. I believe it is a credible choice for a first programming language, especially in the context of contributing to FreeBSD. As the saying goes, "you have to walk before you run". Save C++, Ruby, Python, etc., for later. (If you want to "crawl before you walk", then consider boolean algebra, digital logic, hardware definition languages, computer architecture, microcode, machine code, and assembly language.) The ANSI X3.159-1989 version of C is a relatively small language, yet adequate for real work (as proven by Unix). K&R2e is only 1/2" thick, very well written, and has many available resources. So, the learning curve is reasonable. If you read K&R 2e cover to cover and pay attention to the concepts, your mind will be opened. If you enter and run the examples, and especially if you do the exercises, you will reinforce your knowledge and gain practical skills. Whatever level of effort you put in, the return on investment will be manifold. David