LINUX.ORG.RU
ФорумTalks

[жж] Программисты на C - нужен ваш совет

 


0

0

Собственно, как перейти от Кернигана и Ритчи (если речь идет о C как первом языке) до реальных задач? Нужен ваш опыт.

1. что почитать, чтобы понять, как строится рядовая программа, вроде какого-нибудь mcabber или любой другой небольшой программы на C+Ncurses

2. с каких исходников посоветуете начать?

3. в каких проектах получить свой первый опыт?

★★

Google + мозги с соображалкой + представления о принципах работы консольного UI + готовность пробовать, пробовать и ещё раз пробовать. Ну и + свободное время.

jcd ★★★★★
()

Напиши свой тетрис, потом свой квейк.

redgremlin ★★★★★
()
Ответ на: комментарий от jcd

Да, если же совсем никаких представлений нет - Turbo C++ и conio.h тебе в руки, и вперёд - постигать основы. Можно даже турбопаскаль с crt использовать. // только работает всё это счастье разумеется под досом, не забудь поставить dosbox/etc

jcd ★★★★★
()

можешь пойти на сурсфорж и поискать там открытые вакансии для программистов в проектах. там и С попадается.

stave ★★★★★
()
Ответ на: комментарий от jcd

ну зачем же человеку такую дрянь советовать!
ОП, читай исходники. начни с любого консольного приложения, логику работы которого ты хорошо понимаешь.

val-amart ★★★★★
()
Ответ на: комментарий от val-amart

>ну зачем же человеку такую дрянь советовать!

по крайней мере с турбопаскаля я сам начинал - там и получил понятие об основах и принципах. А в турбос++ - обобщил и слегка расширил. Теперь спокойно сидится где угодно и принципы вполне ясны. :)

>С турбопаскаля прямой путь только в Дельфи - по себе знаю ;-)


скажем так - с турбопаскаля самый лёгкий путь в дельфи, и это я тоже по себе знаю. :)

jcd ★★★★★
()
Ответ на: комментарий от Cancellor

Кстати, да. Вот очень сложно потом от паскаля отвыкать (если с него начинать).

skiminok1986 ★★★★★
()

Чтобы перейти до реальных задач, нужны реальные задачи. Да.

MoRoZ
()

начинай писать свою ОС, все что нужно это придумать дизайн окошек и написать об этом на хабре и лоре

HighwayStar ★★★★★
()
Ответ на: комментарий от HighwayStar

+1

можешь завести свой блог, где будешь писать мысли о том какая будет новая ОС.. Толку от этого конечно никакого, но кучи лулзов от троллей ты получишь.

mono ★★★★★
()

не слушай троллей, лучше напиши простенькую консольную игрушку
например тетрис :]

hizel ★★★★★
()
Ответ на: комментарий от Cancellor

> С турбопаскаля прямой путь только в Дельфи - по себе знаю ;-)

Я, например, со временем заметил, что процент ассемблерного кода в моих программах на турбо паскале существенно превышает долю собственно паскального кода. Так я понял, что уже созрел для C. Дельфи никогда не запускал, видел только на картинках.

mannaz
()
Ответ на: комментарий от val-amart

+1

Я бы ещё порекомендовал найти какую-нибудь раздражающую мелочь в используемых автором темы приложениях и попытаться её исправить.

env ★★☆
()
Ответ на: комментарий от HighwayStar

>начинай писать свою ОС, все что нужно это придумать дизайн окошек и написать об этом на хабре и лоре

да ну, лучше уж тогда написать свой транслятор для с, а потом и компилятор.

stave ★★★★★
()
Ответ на: комментарий от stave

Кстати, вполне себе для новичка задача (если брать какое-то небольшое подмножество Си). Но не на этом этапе.

env ★★☆
()

Посмотри на исходники sendmail, у автора очень большой опыт программирования на С под unix.

Sun-ch
()

> или любой другой небольшой программы на C+Ncurses

Не мучай себя и других, напиши лучше свою консольную либу. Из-за этого нкурсес в линухе до сих пор человеческих консольных программ с удобным интерфейсом просто нет.

xintrea
()
Ответ на: комментарий от Sun-ch

>Посмотри на исходники sendmail, у автора очень большой опыт программирования на С под unix.

Тогда уж лучше vsftpd. Он менее громоздкий.

Turbo_Mascal
()

Напиши файловый менеджер.
Все с него начинали. Не хочешь менеджер, напиши свою микроядерную ОС

vada ★★★★★
()
Ответ на: комментарий от Turbo_Mascal

Не, sendmail - труЪ, это образец как надо писать под юникс. Все очень страшно, криво и коряво - зато работает ну очень быстро, т.к. писался под железки 20 летней давности и люди очень сильно парились по поводу эффективности кода.

Sun-ch
()

Тулкит Clutter. Попробуй написать простой аудиопроигрыватель на нём.

wyldrodney
()

Как научиться питать иностранную литературу? Нужно начать читать эту саму литературу.

Как научиться говорить на иностранном? Нужно начать говорить.

Аналогично и с программированием. Я бы посоветовал Gtk, все таки поинтересней будет, чем дрочерство на консоль.

Какие проекты? Легче перечислить то, что в лялихе имеется, чем то, чего жизненно недостает. На сложной проект не замахивайся, возьми что-нибудь простенькое. Обязательно начни с ТЗ (описание того, что должно получиться), описания данных, планирования. На написание кода отводится 15-20%.

Естественно, прозвучит вопрос - посоветуйте книжку, в которой описана методика создания ПО. Ответ - научись искать информацию самостоятельно.

Paul_N
()
Ответ на: комментарий от Paul_N

Клепать формочки с хело ворд ничему не научит. Надо учится работать с файлами, потоками, сокетами и т.д.

Sun-ch
()

а вообще, мой приятель меня в студенческую бытность учил следующему: хочешь что-то научится делать - делай это на заказах. т.е. чтобы мотивация была финансовая. кроме того росло собственное мнение от того, что не подвёл заказчика. мелкие проекты для студентов по 5 баксов за пучок. там и структуры данных и методы сортировки и многопоточность. или разговор и в самом деле о чистом Ц? тикать с Ц надо. учитесь сразу ООП. переходить с Ц на Ц++ - очень трудно: так и останутся сишные привычки

gunja
()
Ответ на: комментарий от pained

> ООП можно и по более другим языкам выучить

ну если рассматривать ООП именно как подход - мне жаба понравилась (правда на довольно коротких задачах и понравилась тем, что за памятью следить не нужно, хотя для указания кого удалять = nul всё равно прописывал). других языков не смотрел, так что на весомость мнения не претендую.

gunja
()
Ответ на: комментарий от Paul_N

>Я бы посоветовал Gtk, все таки поинтересней будет, чем дрочерство на консоль.

Не не нееее.... :) Такие советы нафиг

golodranez ★★★★
()
Ответ на: комментарий от Elverion

Это перебор для "первого опыта", это как минимум, курсовая работа для колледжа.

Sun-ch
()

[trolling-mode]
Когда я учился кодить на Паскале, моя первая программа была - (о майн гот!) калькулятор. Чем больше читал, тем больше возникало идей, и все они находили своё воплощение в калькуляторе - "Морской бой", "крестики-нолики", прочие игрушки, не требующие особо большого ума в написании. Туда же запихнул редактор текста, дрова к EPSON-овскому тогдашнему принтеру, рисовалку "Painter" и даже небольшой браузер, понимавший MML (My Markup Language).
В довершение всего я осилил сделать из этой раздутой проги загружающуюся с дискеты ОСь (дописал к ней MFM (My File Manager) и удалил из неё модуль калькулятора со всеми упоминаниями в проге, чтобы потом всем говорить "у меня настолько крутая ОСь, и в ней столько всего понапихано, что в ней нет места калькулятору".
Позже дискета была утеряна где-то в недрах комнаты, по сей день найти не могу =(

Думаю, любой первый язык надо изучать по такому же принципу - узнал что-то и тут же заюзал в новом приложении.
(Паскаль изучал по книжкам Фаронова В.В.)
[/trolling-mode]

Для С и С++ рекомендую книжки Тихомирова (издательство BHV, кажись, выпускает) и справочники О'Рейли.

Terrens
()
Ответ на: комментарий от Terrens

Вообще, для изучения АЯП лучше всего подходят именно справочники, имхо. Они коротко и по существу в себе содержат особенности синтаксиса языка, перечень стандартных функций... а большего, в принципе, и не надо для того, чтобы с языком ознакомиться.

Terrens
()
Ответ на: комментарий от gunja

>а вообще, мой приятель меня в студенческую бытность учил следующему: хочешь что-то научится делать - делай это на заказах. т.е. чтобы мотивация была финансовая.

ода, а потом еще удивляются, а почему платный софт такой кривой...

stave ★★★★★
()
Ответ на: комментарий от golodranez

Распространённое заблуждение у вас. Посмотрите, как реализованы утилиты из базовой системы NetBSD/OpenBSD, например.

env ★★☆
()
Ответ на: комментарий от env

>Посмотрите, как реализованы утилиты из базовой системы NetBSD/OpenBSD, например.

Это те программы которые НИЧЕГО не умеют? спасибо, уже на QNX насмотрелся - такого убожества нам не надо.

golodranez ★★★★
()
Ответ на: комментарий от golodranez

Посмотрите на свои высказывания со стороны, вы сейчас похожи на typical Windows user с мнением «Linux — это такой DOS».

Нет, это программы, в которых нет дублирующей функциональности. И которые используют по своему назначению.

env ★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.