• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

C/C++ Resources for New Unix Programmers

ikbendeman

Well-Known Member

Thanks: 12
Messages: 268

#1
I had another post on here and I'm not quite sure what happened to it. Anyways,

I know the basics of C/++/QT and could figure out GTK++ I'm sure, but I'm really looking for some things to do so as to develop my skills further. It seems that most of the problems I find myself needing to write for, scripting solves better than using any actual coding.

However, one thing I was thinking of, is I don't know how to make a frontend, specifically for a curses or ncurses program and I thought that maybe a project like developing a Qt frontend for something like bsdinstall would be good to help me become an actual programmer.

If anybody could provide any kind of resources for such a thing, even if not in C++, I have experience in a number of other languages, too, albeit, similarly limited My professors of my Java and C++ courses both told me I did quite well and had a good understanding of the concepts but I would like to move forward from school to real life applications.

Thanks in advance for any help anyone may provide.
 

drhowarddrfine

Son of Beastie

Thanks: 821
Messages: 2,616

#3
A simple Googling of "programming ncurses" brings a ton of resources on how to do that. I would think Google could help a lot in this case.
 

Oldrancher

Member

Thanks: 11
Messages: 61

#4
I

I know the basics of C/++/QT and could figure out GTK++ I'm sure, but I'm really looking for some things to do so as to develop my skills further. It seems that most of the problems I find myself needing to write for, scripting solves better than using any actual coding.

However, one thing I was thinking of, is I don't know how to make a frontend, specifically for a curses or ncurses program and I thought that maybe a project like developing a Qt frontend for something like bsdinstall would be good to help me become an actual programmer.

If anybody could provide any kind of resources for such a thing, even if not in C++, I have experience in a number of other languages, too, albeit, similarly limited My professors of my Java and C++ courses both told me I did quite well and had a good understanding of the concepts but I would like to move forward from school to real life applications.
Reading this, it appears that what you really want is some "real life" experience in working with software. I'm going to comment from the perspective of an EE whose first encounter with digital computers was DEC PDP-1 hardware at DEC in 1959, and who did a lot of work, both analog and digital, for the next 43 years before retiring. So I'm a hardware engineer who learned programming, and later ran projects that were hardware/software or pure software, also worked as a professor in academia on-and-off, and a few other things.

What you need to focus on is working on maintenance of existing projects, and the FreeBSD project is your opportunity to experience a "real world" environment.
Take on some maintenance of existing ports. If you want ncurses things, the trn4 port has several bugs, the worst of which is that when linked with libncurses rather than the old libcurses library, it drops the first character of the message text. This is a Usenet reader, so you'll have to find a Usenet NNTP server (aioe is simplest). The elm mailreader, which is, I think, another curses program, does not have this problem. Fix that bug and get it into the port, and you will have gone through processes that are saleable skills.
 

Juha Nurmela

Well-Known Member

Thanks: 121
Messages: 401

#5
Guys, you are not reading ikbendeman's post carefully.

A Qt frontend for curses program: that would be pseudoterminals, process handling, terminal emulators, pattern matching in the videoram and everything Qt is, in addition. screen+expect Qt'ified and some.
Certainly educational :)

Juha

Treppenwitz: Or maybe a Qt'ified dialog(1) was the quail.
 

Oldrancher

Member

Thanks: 11
Messages: 61

#6
Well, Juha, my response was to ikbendman's saying that he wanted some real world experience to complement course work to become more employable.
When I was working for a living, I interviewed and hired some number of new college hires. It generally took some time to get acclimated to a working environment.
Getting involved with something like port maintenance on FreeBSD, on a new graduate's experience, is a real attention getter on a CV.
 

fnoyanisi

Active Member

Thanks: 98
Messages: 216

#7
I know the basics of C/++/QT and could figure out GTK++ I'm sure, but I'm really looking for some things to do so as to develop my skills further. It seems that most of the problems I find myself needing to write for, scripting solves better than using any actual coding.
I am not a programmer, but has always had an interest in programming (and written better programs than people claim being a programmer to be honest). So, I, kind of, can understand what ikbendeman means in the above quote, i.e. knowing something but not being able to produce a real result.

I totally agree with Oldrancher in saying getting involved in maintenance of a port would really help you to push your skills up. Or you may find something for yourself in bugzilla?

However, one thing I was thinking of, is I don't know how to make a frontend, specifically for a curses or ncurses program and I thought that maybe a project like developing a Qt frontend for something like bsdinstall would be good to help me become an actual programmer.
For that specific case, since the main purpose of bsdinstall(8) is to install a new system on bare metal (no OS, no GUI etc...) having a Qt frontend for it won't be so usefull in practice? It is also mostly shell scripts that constitutes the whole bsdinstall(8) interface.

Having said that, sometime ago I started to write a network manager which mainly uses the code from bsdinstall(8)'s network configuration part with some additional code to provide a GUI frontend (dialog(1) shines here), so it has ncurses and GTK+ frontends.

What about writing a GTK+ / Qt frontend (I prefer GTK+ to be honest :)) for lldb(1)? It has an experimental and unmaintaned gui interface, which uses ncurses, and people are looking for a better solution. Starting something and taking it seriously, i.e. maintaining it up to a point that it becomes a mature software to be used in production will definitely take you a better place than you are (technical skills, self confidence etc....)
 
Top